This document describes a file based graph database.
Some of its features:
- Atomic (either all changes are commited at once, or none are commited at all)
- Persistent (the changes are not visible to the processes that have opened the database before the update)
The database is built on 3 layers: (ça va être renommé)
- Storage: the raw storage, that can append new records to a file, and also manage a special pointer that references one of the record. (Finalized)
- Store: a low level tree data structure based on the Storage layer, and that allows to perform multiples changes in memory on this tree before commiting everything to the storage. (Finalized)
- Tree: a high level graph data structure based on the Store layer, that also provides a mean to apply constraints on the shape and values of the graph, and to simulate extra nodes and values dynamically. (Finalized)
In addition, there is a component to help describe validation schema:
- Schema: a layer on top of the schema validation provided by the Tree layer. (WIP)