News for hackers. Stuff that matters.
Re:Show HN: VersionDB – A key, value store inspired by Git by aennyta on Friday December 22, 2017 @06:32AM (#15986756)
This sounds very interesting. Which database is it - mongoDB, mySQL,...? It is not very clear.
Re:Show HN: VersionDB – A key, value store inspired by Git by josephsweeney on Friday December 22, 2017 @06:08PM (#15991648)
It actually doesn't use another database. Just uses plain old files for storage.

It takes after Git where it stores each piece of data in a file with the name of the file as the hash of the data.

Re:Show HN: VersionDB – A key, value store inspired by Git by aennyta on Friday December 22, 2017 @06:16PM (#15991696)
So does it export the database in file and then version controls that file?
Re:Show HN: VersionDB – A key, value store inspired by Git by josephsweeney on Friday December 22, 2017 @10:01PM (#15992670)
There actually isn't any database outside of a directory of files. The version control is done the same way that Git works under the hood but written from scratch in C.

Essentially, we have a database directory with two sub-directories, refs and objects. In refs we have a file for the id of each piece of data stored. The id file contains the hash of the latest commit for this id. A commit is just another file that contains a time, a hash of the previous commit, and the hash of the data.

The objects directory stores all the data and the commits, with each entry's filename being the hash of its data and its contents as the data stored.

So all we're doing is making a linked list where each entry points to a different version of that data. No external database or version control needed.