An open API service indexing awesome lists of open source software.

https://github.com/sarthakmakhija/storage-engine-workshop

Repository for a workshop on the topic - building storage engine
https://github.com/sarthakmakhija/storage-engine-workshop

database golang lsm-tree skiplist storage wal

Last synced: about 1 year ago
JSON representation

Repository for a workshop on the topic - building storage engine

Awesome Lists containing this project

README

          

# Idea

This repository will be used in "building storage engine" workshop. As a part of that workshop, we will build a storage engine using LSM tree, but we will not implement
merge and compaction.

This repository is supposed to contain the following:
- [X] Implementation of Memtable
- [X] Implementation of SSTable
- [X] Implementation of concurrency, using either a single writer/multiple readers pattern or a singular update queue pattern
- [X] Implementation of segmented write-ahead logging
- [X] Implementation of transactions
- [X] Implementation of Bloom filter
- [X] Implementation of "Put", "Get", "MultiGet"
- [X] Implementation of "Get" and "MultiGet" in Memtable and SSTable
- [ ] Implementation of "Update" using versioned put (Next version)

# Revised code

The revised code is available [here](https://github.com/SarthakMakhija/go-lsm)