A key/value database for the Phoenix Golang Meetup's Build a Database Server challenge.
Heavily inspired by chapter 7 of Martin Kleppmann's Designing Data-Intensive Applications book.
cmd
- TCP and HTTP frontends for the DBcommands
- Implementations of execuatable and undoable actionsprotobuf
- Protobuf implementations of store persistencestores
- Stuff to do with storagetransactors
- Implementation of a transaction orchestrator
This DB implmements serializable isolation with a 2-phase lock.
This DB has a protobuf binary log for disk persistence.
"Transactions: myths, surprises and opportunities" - Martin Kleppmann at Strange Loop