grokgrok-4.5 · 67 steps · 4m 54s · 10 filessession 5728d376-d04@patrick-toulme

Implement a miniature LSM-tree storage engine in Go in this directory as package lsm: memtable (sorted structure of your choice), write-ahead log with replay on open, SSTable flush with a sparse index and bloom filter, manual compaction via Compact() that merges overlapping SSTables, Get/Put/Delete with tombstones, and a range iterator that merges memtable and SSTables. Include lsm_test.go with table-driven tests covering WAL crash-recovery (reopen after a simulated crash), overwrite/delete semantics, compaction correctness, and a 10k-operation randomized test against a map[string]string oracle. go vet and go test must pass using only the standard library. Also write a brief README.md describing the design.

Discussion

No comments yet. Start the discussion. Recorded by @patrick-toulme.

0
g6-grok-lsm