...
- stateless Fedora instance(s) will scale horizontally
- database can be clustered and/or moved to cloud database service(RDS, Aurora, etc)
- start with file system, scale out to cloud object store (s3)
Bulk ingest
To flavors of pointing a Fedora instance at an OCFL backend.
- via OCFL
- via Fedora OCFL
- ie "content/.fcrepo" aware
...
- Faster ingest rates can be achieved by users writing OCFL-compliant content directly to disk
- Would require Fedora to (re)scan OCFL storage hierarchy
- Optionally, user could write into OCFL-compliant storage in a way that includes Fedora optimizations (e.g. ".fcrepo/" directory)
Performance
- Many members: performance should improve significantly since list of members will be supplied by a database index (which should support a degree of in-memory caching). No loading of modeshape nodes required.
...
- Same code logic used for creation of OCFL versions / Mementos in both on-demand and on-change models
Import / Export (Migration)
...
Migration from lower versions of Fedora to higher
- Design
- Release import/export tool for each version of Fedora (4, 5, 6)
- Import/Export tool for a given release is able to round-trip content for that release
- If necessary, transform exported serialization produced from one Fedora version to the a serialization that is expected for the import Fedora version
May be able to transform F3? 4, 5 directly to F6-OCFL on-disk serialization
- Release import/export tool for each version of Fedora (4, 5, 6)
- Fedora resource URLs must remain unchanged during migrations
- Persistence model of Fedora 6 should be stable enough to eliminate the need for a content migration to Fedora 7
Fixity service
- Requirements:
- Check fixity of binary resource(s) by comparing computed value with stored value
- Check fixity of binary resource(s) given a specific set of Fedora object rdf:types
- Persist results of fixity check
- In log file?
- In database?
- In Fedora?
- Scheduled fixity service:
- Probably not part of the core
...
- Run as a separate service
...
- (see: Riprap)
- Schedule based on circular queue of Fedora resources, ordered by "last fixity check" date property on Fedora resource
- Retain "fedora:hasFixityService" triple or header
- At the OCFL-level, interest in providing fixity over an OCFL storage hierarchy
Query service
- Proposal: Query service /
Query endpoint
...
- endpoint should support the following
...
- queries:
- List all resources
- List resources by mimetype
- List resources by parent
- List resources by mimetype, parent, and modified date (<>=)
- List resources where modified <> x date
...
- Open questions around scope of resources to be searchable
- Fedora resources?
- Resources defined in RDF documents within the repository?
- Hash URIs?
- Open questions around properties to support
- Server-managed triples?
- All properties?
- Triplestore not necessarily required
Implementation notes
- Index of all Fedora resources would be needed to support the query service
- Messaging model (synchronous or asynchronous) would likely be used to populate the index
- Full-text search would be a bonus
Transaction service
- No definitive decisions made.
- Proposal: no change to the Fedora API spec in 6. We will either:
- align code with the (as-yet-to-be-ratified) side-car specification
- leave HTTP API unchanged while introducing the possibility of auto-versioning on transaction completion.