Persistent Configuration Tree

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)