Using Git as a NoSql Database
summary
Claim: Git serves as a content-addressed NoSQL store with built-in deduplication and immutable history. Implementation uses the libgit2 stack and LibGit2Sharp bindings, a bare repo with a REST API, post-commit hooks for replication and backups (pushed to a private GitHub remote), and denormalization into Elasticsearch for reads. Measured throughput hits ~125 writes/sec dropping with large flat trees but recovers to 250 writes/sec via tree nesting, partitioning or alternate backends; merge conflicts and eventual consistency remain drawbacks.
AI-written summary · about
chapters (33)
- 0:00Introduction
- 0:30Background
- 2:26Structure
- 2:50Disclaimers
- 3:22First Attempt
- 4:34Git Repository
- 5:16Git Data Model
- 7:01Git Tools
- 8:51Get Tree
- 11:07Update
- 12:55UpdateRef
- 13:30Lipkit
- 14:16CSharp
- 14:59Writing the blob
- 16:45Changing the file
- 17:39Why
- 18:26Versioning and rollback
- 19:21Duping your content
- 20:11Backup and replication
- 23:07Atomic transactions
- 23:56Longlived transactions
- 25:15Keyvalue stores
- 25:45CQRS system
- 26:46Concurrency
- 28:58Locking
- 29:20Performance
- 31:40Tree Nesting
- 32:08Tree Levels
- 33:27Partition
- 34:00Change Backend
- 34:18Disadvantages
- 35:08Merge conflicts
- 36:53Git as a database








