...
The working group's charter.
Work in progress
- Review of top-level architecture
- Collecting of usecase-based performance goals
- Collecting of to-date performance tests
Meetings
Initial Objective
Given the areas of assessment enumerated below, the Technical Working Group has decided to prioritize and select the top four areas for initial review. The plans for the each of these four areas and their assessment outcomes can be found:
Anchor | ||||
---|---|---|---|---|
|
- REST API
- Are immediate updates required?
- We should version the API independently
- This offers multiple backend implementations/optimizations
- A. Soroka: I think this requires a stronger definition of the API than currently exists in the form of user documentation. I suggest defining the API as ontology extensions to LDP.
- Clarifying and publicizing (formally and informally) the relationship between the Fedora API and LDP.
- Performance
- Read
- Writes
- Many small files
- Large files
- High throughput
- Scalable serialization to disk
- Need to measure scale of load that async serialization can meet
- Need to clarify async approaches: messaging and sequencers
- Replication of objects to another repository instance
- Full re-indexing
- Full integrity checks
- Multi-node / Clustered configurations /
FederationCapable- High availability
- Bulk ingest
- High read loads
- Note: generally need to define what clustering provides (DWD - I suggest that a cluster acts like a single installation in which system state is closely shared among the members. Clusters usually imply a common implementation)
- Federation - (nodes have a common definition for identifiers, interfaces, formats, protocol, business semantics, and policies that permit them to interoperate but otherwise act like independent installations that do not closely share system state. Federation does not need to be a common implementation but implies common governance)
- ModeShape
- Assess persistence approach (i.e. bit-level object and datastream persistence)
- Some backup/restore details: Backup and Restore
- Assess persistence approach (i.e. bit-level object and datastream persistence)
- Evolution-capability - The system permits graceful (incremental) changes without having to perform replacement of large parts of the system in one step
- The software permits the graceful replacement of old technology with new technology
- The software permits the integration of new technology gracefully
- New content formats can be added easily, and the system permits gracefully delivering new representations for existing content
- New capabilities can be added or old ones replaced gracefully
- Underlying hardware and software infrastructures can be replaced gracefully, and the system can use advances in technology or special characteristics of its technical infrastructure without changing the core Fedora software
- How does the content move forward in time?
- How do the interface contracts move forward in time?
- How does the implementation move forward in time?
- Ability to use in various integration patterns
- Inbound and outbound transformation
- Permits ingested information to be transformed so it matches the supported ingest contracts, and the same in reverse for delivery
- Also used internally to support interoperation with back-end integrations particularly storage (for example S3, DuraCloud)
- Overlaps the Content Enrichment pattern for feature extraction, for example loading Search and Discovery indices
- Content Enrichment pattern for ingest at least
- For example, extra meta-information can be added to newly ingested content
- Another example is extraction of meta-information from inside the ingested content
- A third example, is connecting content or meta-information to other related items
- Internal and external event driven (notification) patterns (especially external notification that an asynchronous operation is complete)
- Internal event driven operation is likely to be well set up
- A classic external case is a front-end system needs to know when all internal operations or delegated operations are finished so the front-end system can behave is a post ingest fashion. For example, update its indexes, removed staged content, possibly remove original content. The alternative is a polling approach (both could be used).
- Idempotent receiver pattern - Identical ingests could be received but it should be possible to ignore duplicates
- Message Bridge pattern - Permits inbound messages (all RESTful HTTP API calls are messages) to signal back-end integrations, possibly outside the repository to perform functions
- Inbound and outbound transformation
- Storage Options
- Tiered-storage
- Support having all or part of the content low performance storage including copies in near-offline storage
- Support having all or part of the content on offline storage (like tape - where items are not available until after staging)
- Support having meta information stored in offline or near offline
- Support storage other than file systems and using that storage's special features
- Bytestream-based object stores like S3, DuraCloud or Isilon
- Streaming stores for low latency, low dropout functions such as audio and video delivery
- Tape
- Support having specialized indices particularly for locating copies, metadata or discovery data, also removal of latency
- Direct queries to appropriate an appropriate index
- Marshall results from multiple indices
- Tiered-storage
Preservation-worthinessAnchor preservation preservation - These comments are based on the assumption that the only form we currently know how to preserve is a serialized form, also some features overlap, If this is not true propose an alternative
- Permit copies to be made, maintained and validated at one or more geographically remote locations
- All archivally significant data is, at some point, stored in a serialized form
- A. Soroka: What is "archivally significant data"?
- No notification that results in the destruction of the original source materials is issue until all steps of the preservation policy are executed and verified (A. Soroka: This is as much to say that Fedora's performance will always be terrible.)
- e.g. content progresses from a (possibly) non-serialized form, to a serialized from and n copies are made, followed by a check of essential characteristics
- There is some definition of the essential characteristics of the representations that can be delivered for the unit of preservation
- There is some definition of the unit of preservation
- Bitstream level fixity of "preserved" representations can be verified
- Fixity of meta information can be verified
- Some approach to authenticity is selected and used including at least lifecycle records (one kind of audit record)
- Records of system operations including configuration changes are kept (a second kind of audit record)
- A. Soroka: This is not feasible in the current implementation and making it feasible would require bringing configuration into the repository, a massively-non-trivial task.
- Repeated from Evolution above since the subjects overlap: How does the content move forward in time?
- How do the interface contracts move forward in time?
- How does the implementation move forward in time?
- Support for graphs of related stuff (carefully avoiding saying what kind of stuff yet)
- Linked data
- Semantic databases
- Specific representations
- Named graphs
Meetings
- 2014-08-13 - Fedora Technical WG Meeting
- 2014-08-20 - Fedora Technical WG Meeting
- 2014-08-27 - Fedora Technical WG Meeting
- 2014-09-03 - Fedora Technical WG Meeting
- 2014-09-10 - Fedora Technical WG Meeting
- 2014-09-17 - Fedora Technical WG Meeting
- 2014-09-24 - Fedora Technical WG Meeting
- 2014-10-08 - Fedora Technical WG Meeting
- 2014-10-15 - Fedora Technical WG Meeting
- 2014-10-29 2014-08-20 - Fedora Technical WG Meeting