Sorted string table

https://www.scylladb.com/glossary/sstable/

SSTable is saved as a persistent, ordered, immutable set of files on disk. They are created by a memtable flush and are deleted by a compaction.

An SSTable uses a Log-Structured Merge (LSM) tree data structure format. This format is more efficient for write-heavy fast-growing extremely large data sets than a traditional B-tree (pronounced “Bee tree”) format.

https://www.igvita.com/2012/02/06/sstable-and-log-structured-storage-leveldb/

This “LSM” architecture provides a number of interesting behaviors: writes are always fast regardless of the size of dataset (append-only), and random reads are either served from memory or require a quick disk seek. However, what about updates and deletes?

tombstone record is appended for deletes.

Resources

https://github.com/google/leveldb

https://github.com/facebook/rocksdb/wiki/MemTable#

https://github.com/facebook/rocksdb/wiki/Write-Ahead-Log-%28WAL%29

  • CRC records