SkillAgentSearch skills...

Kvdb

A key/value database for the Phoenix Golang Meetup's Build a Database Server challenge.

Install / Use

/learn @ChristianAlexander/Kvdb
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

KVDB

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.

Structure

  • cmd - TCP and HTTP frontends for the DB
  • commands - Implementations of execuatable and undoable actions
  • protobuf - Protobuf implementations of store persistence
  • stores - Stuff to do with storage
  • transactors - Implementation of a transaction orchestrator

Isolation

This DB implmements serializable isolation with a 2-phase lock.

Binary Log

This DB has a protobuf binary log for disk persistence.

See Also

"Transactions: myths, surprises and opportunities" - Martin Kleppmann at Strange Loop

Command Pattern - Wikipedia

Protocol Buffers

Varint - Go Standard Library

View on GitHub
GitHub Stars28
CategoryData
Updated3y ago
Forks3

Languages

Go

Security Score

80/100

Audited on Jun 4, 2022

No findings