Hi, I would implement the storage layer ourselves. It could look like:
- FileDataStore: keep as is (maybe reduce the directory level by one). - Each node has a number (I would use a long). Used for indexing. - MainStorage: the node data is kept in an append-only "main persistence storage". When switching to a new file, the node lookup table (node index) is appended. An optimization step would separate less updated nodes ("old generation") and frequently updated nodes. Nodes and its child nodes are grouped together. - Namespace index, name index, nodetype registry: start with a fixed (hardcoded) list, and store additional entries as system nodes. Regards, Thomas