|
@@ -9,34 +9,26 @@ LAKEsuperior aims at being an uncomplicated, efficient Fedora 4 implementation.
|
|
|
|
|
|
Its main goals are:
|
|
Its main goals are:
|
|
|
|
|
|
-- *Simplicity of design:* LAKEsuperior relies on [LMDB](https://symas.com/lmdb/),
|
|
+- **Reliability:** Based on solid technologies with stability in mind.
|
|
-an embedded, high-performance key-value store, for storing metadata and on
|
|
+- **Efficiency:** Small memory and CPU footprint, high scalability.
|
|
-the filesystem to store binaries.
|
|
+- **Ease of management:** Tools to perform monitoring and maintenance included.
|
|
-- *Efficiency:* while raw speed is important, LAKEsuperior also aims at being
|
|
+- **Simplicity of design:** Straight-forward architecture, robustness over
|
|
-conservative with resources. Its memory and CPU footprint are small. Python C
|
|
+ features.
|
|
-extensions are used where possible to improve performance.
|
|
|
|
-- *Reliability:* fully ACID-compliant writes guarantee consistency of data.
|
|
|
|
-- *Ease of management:* Contents can be queried directly via term search or
|
|
|
|
-SPARQL without the aid of external indices. Scripts and interfaces for
|
|
|
|
-repository administration and monitoring are shipped with the standard release.
|
|
|
|
-- *Portability:* aims at maintaining a minimal set of dependencies.
|
|
|
|
|
|
|
|
## Key features
|
|
## Key features
|
|
|
|
|
|
-- Drop-in replacement for Fedora4 (with some caveats: see
|
|
+- Drop-in replacement for Fedora4 (with some
|
|
- [Delta document](doc/notes/fcrepo4_deltas.md))—currently being tested with
|
|
+ [caveats](doc/notes/fcrepo4_deltas.md)); currently being tested with Hyrax 2
|
|
- Hyrax 2
|
|
+- Very stable persistence layer based on [LMDB](https://symas.com/lmdb/) and
|
|
|
|
+ filesystem. Fully ACID-compliant writes guarantee consistency of data.
|
|
- Term-based search (*planned*) and SPARQL Query API + UI
|
|
- Term-based search (*planned*) and SPARQL Query API + UI
|
|
- No performance penalty for storing many resources under the same container; no
|
|
- No performance penalty for storing many resources under the same container; no
|
|
[kudzu](https://www.nature.org/ourinitiatives/urgentissues/land-conservation/forests/kudzu.xml)
|
|
[kudzu](https://www.nature.org/ourinitiatives/urgentissues/land-conservation/forests/kudzu.xml)
|
|
pairtree segmentation <sup id="a1">[1](#f1)</sup>
|
|
pairtree segmentation <sup id="a1">[1](#f1)</sup>
|
|
-- Constant performance writing to a resource with
|
|
+- Extensible [provenance metadata](doc/notes/model.md) tracking
|
|
- many children or members; option to omit children in retrieval
|
|
+- [Multi-modal access](doc/notes/architecture.md): HTTP (REST), command line
|
|
-- Migration tools (*planned*)
|
|
+ interface and native Python API.
|
|
-- Python API (*planned*): Authors of Python clients can use LAKEsuperior as an
|
|
+- Fits in a pocket: you can carry 50M triples in an 8Gb memory stick.
|
|
- embedded repository with no HTTP traffic or interim RDF serialization &
|
|
|
|
- de-serialization involved.
|
|
|
|
-- Fits in a pocket: you can carry over 50M triples in an 8Gb memory stick.
|
|
|
|
|
|
|
|
Implementation of the official [Fedora API specs](https://fedora.info/spec/)
|
|
Implementation of the official [Fedora API specs](https://fedora.info/spec/)
|
|
(Fedora 5.x and beyond) is not
|
|
(Fedora 5.x and beyond) is not
|
|
@@ -46,6 +38,21 @@ project if it gains support.
|
|
Please make sure you read the [Delta document](doc/notes/fcrepo4_deltas.md) for
|
|
Please make sure you read the [Delta document](doc/notes/fcrepo4_deltas.md) for
|
|
divergences with the official Fedora4 implementation.
|
|
divergences with the official Fedora4 implementation.
|
|
|
|
|
|
|
|
+## Target Audience
|
|
|
|
+
|
|
|
|
+LAKEsuperior is for anybody who cares about preserving data in the long term.
|
|
|
|
+
|
|
|
|
+Less vaguely, LAKEsuperior is targeted at who needs to store large quantities
|
|
|
|
+of highly linked metadata and documents.
|
|
|
|
+
|
|
|
|
+Its Python/C environment and API make it particularly well suited for academic
|
|
|
|
+and scientific environment who would be able to embed it in a Python
|
|
|
|
+application as a library or extend it via plug-ins.
|
|
|
|
+
|
|
|
|
+In its current status, LAKEsuperior is aimed at developers and
|
|
|
|
+hands-on managers who are able to run a Python environment and are
|
|
|
|
+interested in evaluating this project.
|
|
|
|
+
|
|
## Installation
|
|
## Installation
|
|
|
|
|
|
### Dependencies
|
|
### Dependencies
|
|
@@ -72,9 +79,9 @@ dependencies and should be automatically installed.
|
|
add this line to your virtualenv `activate` script)
|
|
add this line to your virtualenv `activate` script)
|
|
1. Configure the application
|
|
1. Configure the application
|
|
1. Start your STOMP broker, e.g.: `coilmq &`
|
|
1. Start your STOMP broker, e.g.: `coilmq &`
|
|
-1. Run `util/bootstrap.py` to initialize the binary and graph stores
|
|
+1. Run `./lsup_admin bootstrap` to initialize the binary and graph stores
|
|
1. Run `./fcrepo` for a single-threaded server (Bjoern) or `./fcrepo-mt` for a
|
|
1. Run `./fcrepo` for a single-threaded server (Bjoern) or `./fcrepo-mt` for a
|
|
- multi-threaded development server (GUnicorn).
|
|
+ multi-threaded server (GUnicorn).
|
|
|
|
|
|
### Production deployment
|
|
### Production deployment
|
|
|
|
|
|
@@ -91,6 +98,8 @@ for a rudimentary road map and status.
|
|
|
|
|
|
[Content Model](doc/notes/model.md)
|
|
[Content Model](doc/notes/model.md)
|
|
|
|
|
|
|
|
+[Command-Line Reference](doc/notes/cli.md)
|
|
|
|
+
|
|
[Storage Implementation](doc/notes/storage.md)
|
|
[Storage Implementation](doc/notes/storage.md)
|
|
|
|
|
|
[Performance Benchmarks](doc/notes/performance.md)
|
|
[Performance Benchmarks](doc/notes/performance.md)
|