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
- Host: GitHub
- URL: https://github.com/sarthakmakhija/storage-engine-workshop
- Owner: SarthakMakhija
- Created: 2022-07-11T10:28:06.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-09-23T05:53:34.000Z (almost 2 years ago)
- Last Synced: 2025-03-30T10:33:47.943Z (about 1 year ago)
- Topics: database, golang, lsm-tree, skiplist, storage, wal
- Language: Go
- Homepage:
- Size: 119 KB
- Stars: 6
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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)