Presentation is loading. Please wait.

Presentation is loading. Please wait.

SILT: A Memory-Efficient, High-Performance Key-Value Store

Similar presentations


Presentation on theme: "SILT: A Memory-Efficient, High-Performance Key-Value Store"— Presentation transcript:

1 SILT: A Memory-Efficient, High-Performance Key-Value Store
Hyeontaek Lim, Bin Fan, Davig G. Anderson, Michael Kaminsky* CMU, *Intel Lab Presenter: Taejoong Chung *Some slides are borrowed from author’s one

2 Contents Introduction Objective Wish to think in this seminar
Struggles in Key-Value Storage Objective Design Goal Wish to think in this seminar Prerequisites Methodology LogStore, HashStore, SortedStore Conclusion

3 Introduction: Struggles in Key-Value Storages
Because of economical/speed issues, storages for key and values are separated Basically, keys are mainly stored in fast-memory (e.g., S/DRAM) and values are stored in slow memory (e.g., Flash) However, flash-memory has threshold for writing  The number of writings are carefully considered

4 Seesaw Games ? FAWN-DS How can we improve? FlashStore HashCache
SkimpyStash BufferHash Memory efficiency High performance

5 Objectives The size for key in DRAM are too big, so far!
Some of keys are also stored in flash Many flash reads for finding index bring a die young Let’s minimize Size for key in fast memory Number of look-up in slow memory

6 Design Goals Low read amplification
Minimize the flash-reads (1 + ε) Controllable write amplification and favoring sequential writes Also minimize the flash-writes  mortality Memory-efficient indexing Computation-efficient indexing Effective use of flash spaces

7 Wish to Think in This Seminar
How to apply this structures/mechanism for NDN components CS PIT FIB But, because flash memory are too slow to get the data back Fast + Slow memory  CS (Content Store) Fast memory  FIB or PIT

8 Prerequisite: Cuckoo Hashing
Name derives from the behavior of cuckoo-chick who pushes the other eggs when it hatches Probing problems in basic-hashing If there is lots of entries with same hash function, the bucket size increases, number of probing is increased Two hash functions are used for an index If another elements are inserted, the original elements are shifted to the other index

9 Prerequisite: Compressed Trie
The representation for tries have many alternatives Compressed Trie

10 Approaches (Conventional vs. SILT)
Conventional Structure In-memory filter to test whether a given key is stored before accessing flashes In-memory index to locate the data on flash On-flash data to store all key-values SILT Structure (3 components)

11 Basic Operations LogStore HashStore SortedStore
Write friendly key-value store (similar to conventional storage) In-memory hash table to map contents in flash Modified Cuckoo hashing is used Only one instance HashStore Immutable hash store No need to in-memory index to locate entries (what?!) SortedStore Key-value storage on flash Extremely compact index representation (0.4 bytes/key)

12 #1. LogStore Use a tag (15 bits) for an index rather than an entire hash index (160bits) Cuckoo hashing is used When it happens to replacement? Should find alternative-hash for an originally inserted hash  another read from flash Insert the other hash result for an tag

13 #2. HashStore Once a LogStore fills up, SILT freezes the LogStore and converts it into HashStore Sort the LogStore based on ‘HashOrder’ Saves lots of in-memory by eliminating the index and reordering the on-flash pairs from insertion order to hash-order

14 Where are We?

15 #3. SortedStore Multiple HashStore can be aggregated into SortedStore
Struggle to minimize the bit presentation From the sorted results, indices are re-made

16 SLIT Lookup Process Queries look up stores in sequence (from new to old) Inserts only go to Log Data are moved in background SILT Sorted Index (Memory efficient) SILT Filter SILT Log Index (Write friendly) Memory Flash

17 SILT’s Design <SortedStore> <HashStore> <LogStore>
SILT Sorted Index SILT Filter SILT Log Index Merge Conversion On-flash sorted array On-flash hashtables On-flash log Memory overhead Read amplification Write amplification 0.7 bytes/entry 1.01 5.4

18 Conclusion SILT provides both memory-efficient and high-performance key-value store Multi-store approach Entropy-coded tries Partial-key cuckoo hashing Full source code is available


Download ppt "SILT: A Memory-Efficient, High-Performance Key-Value Store"

Similar presentations


Ads by Google