A simple golang database, JGDB stands for Json Git Database
This project is in alha state!
The major distinction between List and Object is that one, the List type uses a single file as backend with each record placed in one line.
Where as the Object type keeps each record in a separate file. The object type will keep track of these records with an index file, and also optionally with a strtree for fast in memory access.
To get a proper distributed system you need a merge strategy for your git repositories. How would you solve conflicts?
As with everything I am open to suggestions, meanwhile I am planing following:
The strategy will differ by List or Object type database.
For example the List type database will not have any update only insert and delete.
The insert operation will easily be resolved by git, when nodes do their pull, save, add, commit and push cycle.
When it comes to the delete operation, every node will before deleting a record, add lock on the file it plans to modify. Each node will be able to lock a file at pull time. This means other nodes can still modify and commit all other files, just not the one locked by a node. The lock will have a time limit as it does only takes a short time to perform a full cycle of pull, save, add, commit and push with git.
First Created: 2015-01-28T19:54:59Z
Last Modified: 2026-04-05 19:35