...

/

Evaluating and Extending the Design of SILT

Evaluating and Extending the Design of SILT

Evaluate how our design meets our goals and learn about extensions that can be made to our design.

Evaluation

We designed our key-value store to meet many goals. Let's assess how well our store meets those goals. We will offer possible extensions to our design as well.

Reduced per-key memory consumption

Our three stores in decreasing per-key memory consumption are the write-friendly store, the intermediary store, and the memory-efficient store. In our design, the proportion of key-value entries stored increases in this order. We have ensured that our most memory-efficient store has most of our entries.

We cannot avoid storing keys in the write-friendly and intermediary stores since it is required to make our write requests efficient.

Press + to interact
Memory efficiency allows for scalability
Memory efficiency allows for scalability

Low read amplification

Just because our entries are stored in multiple stores it does not mean that our design requires storage lookups for each store.

For the write-friendly and intermediary stores, their in-memory hash table serves as a filter. If the key does not exist in these stores, the request is forwarded to the next store without looking it up in storage. So all read requests that make it to the memory-efficient store have been filtered by the hash filters from the write-friendly store and the intermediary stores.

This design offers a near 1 read amplification (the value of 1 for the read amplification is the best possible value). The only cases where read amplification exceeds 1 are false positives, when the partial key hash matches the computed hash for GET requests in the write-friendly and intermediary stores, and the extracted key from storage does not match the lookup key. This can be kept low by selecting good criteria for extracting a partial key out of the complete key for partial-key cuckoo hashing.

Press + to interact
We cannot afford multiple storage reads for one lookup if we want to scale to billions of keys
We cannot afford multiple storage reads for one lookup if we want to scale to billions of keys

Fast lookup

The first two stores provide constant time lookup, while the memory-efficient store provides a lookup in ...

Access this course and 1400+ top-rated courses and projects.