Pebbles DB: Building Key-Value Stores using Fragmented Log- Structured Merge Trees(II) Peter Sassaman
Overview • Sentinel • Guards • Guard Selection (MurmurHash) • SSTables • High Levels in memory
(1) “FLSM can be viewed as a generalization of the LSM data structure.”. Please explain this statement.
(2)“New sstables are simply added to the correct guard in the next level. There are two exceptions to the no- rewrite rule”. Describe these two exception compaction scenarios. An SSTAble An SSTAble Level 4 1,2 1,2 Level 3 Level 5 Guard on this level Level 4 1,2 1,2 almost full Level 5 1,2
(3)“deleting a guard will involve a significant amount of compaction work” Please describe the operations involved in a guard deletion. • At Compaction • add to in-memory set • SS Tables are Either appended to neighbor guard in same level or child guards in next level. • Keep metadata • If needed delete at levels > i • delete levels < i
(4) Describe how a range query is served. Query: Get 2- 5
(4) Describe how a range query is served. Query Get 2 - 5 1. Guard: 1,5
(4) Describe how a range query is served. Get 2 - 5 1. Guard: 1,5 2. 2. Binary 2
(4) Describe how a range query is served. Get 2 - 5 1. Guard: 1,5 2. Binary 3. 3. Merge 2,3
(4) Describe how a range query is served. Get 2 - 5 End of 1. Guard: 1,5 Query 2. Binary 3. Merge 4. End 2,3,5
(5) “In Workload F, all writes are read -modify-writes: the workload does a get() before every put() operation. As a result, the full write throughput of PebblesDb is not utilized, resulting in performance similar to that of other key- value stores.” Explain why for this workload PebbleDB has similar performance.
Images From • http://www.cs.utexas.edu/~vijay/papers/sosp17-pebblesdb.pdf • https://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/LSM_ Tree.png/1200px-LSM_Tree.png
Recommend
More recommend