A Write-friendly Store for SILT: Part III
Understand the design and operation of a write-friendly store in SILT key-value systems, focusing on efficient GET request handling and memory optimization. Learn how this store uses partial keys and hash-based lookups to reduce latency and memory use, as well as trade-offs involving store parallelization and memory bounds. This lesson prepares you to manage resource-efficient and scalable storage components in large-scale distributed systems.
We'll cover the following...
GET requests
Since we are using a partial key, it is important to note how this will affect GET requests. We will only proceed with a lookup for a GET request if the tag matches the key in the request. By lookup, we mean lookup in storage. So, when the write-friendly store receives a GET request for key Kg:
It computes the candidate buckets
h1(Kg)andh2(Kg)and looks inside these buckets.Inside
h1(Kg), it looks for the tagh2(Kg). If the computed tagh2(Kg)matches the tag inside bucketh1(Kg), then it looks up the entry in the storage log stored on the offset marked withh2(Kg).Inside
h2(Kg), it looks for the tagh1(Kg). If the computed tagh1(Kg)matches the tag inside bucketh2(Kg), then it looks up the entry in the storage log stored on the offset marked withh1(Kg).
Upon a
in ...successful match computed tag matches tag in bucket