OverviewThis page is for discussion and description of a proposed "high-level" storage interface for fedora. A draft proposal can be found below. In a nutshell, this proposal aims to remove certain hard-coded storage assumptions in Fedora, and present a storage layer/interface that would allow a place for extensions to Fedora that implement multiplexing, non-blob storage, lock-free updates, etc. Documents
Issues for Discussion
Implementation planSince the storage layer in Fedora resides beneath the object management (DOManager) layer in Fedora, adopting HighLevelStorage implies creating an alternate DOManager instance that interacts with HighLevelStorage rather than ILowLevelStorage. Ideally, this alternate DOManager would be a simple drop-in replacement for the existing DefaultDOManager. Initial development of HighlevelStorage could then be be largely independent from the core Fedora code, deployment would be enabled by a simple configuration change. Unfortunately, this is not easily possible today due to unnecessary coupling between certain Fedora components, and an abundance of unrelated functionality in DOManager that can/should exist elsewhere. These issues would need to be addressed in order to create a truly pluggable DOManager. While HighLevelStorage is not scheduled to be a feature of Fedora 3.4, it may be developed concurrently or slightly after the 3.4 release date. As many of the prerequisites for drop-in replacement of DOManager are general improvements to the Fedora code base that are not storage-specific, there is distinct appeal to incorporating these basic improvements into the core in time for Fedora 3.4. Relevant tracker itemsPrerequisites and CleanupThese are issues that represent necessary (or desirable) cleanup of existing code. These issues are general improvements that will facilitate implementing and deploying an alternate HighLevelStorage-based DOManager. Issues to revisitThese are issues that may need need to be re-stated in the context of HighLevelStorage, re-implemented using HighLevelStorage concepts, or may be affected in some other way. |