Designing the System
Let's discuss how a system is designed that provides us with low memory overhead and write amplification.
Kangaroo Overview
Let’s name the system Kangaroo. It’s a new flash-cache design that optimizes both DRAM usage and flash writes to maximize cache performance while minimizing cost.
Kangaroo has two main parts, KLog
and KSet
. KLog
is a log-structured cache, it has an index and then a circular log on flash. It is a small amount of flash, say five to ten percent. Once an object gets evicted from KLog
it’s going to get moved to KSet
and so in KSet
there’s a set-associative cache that’s going to take up the remainder of the flash capacity
and as we’ll see it allows us to have a low memory overhead since this takes up most of the flash.
Inserting objects in Kangaroo
If an object is to be inserted into
kangaroo, first it is inserted into KLog
through a buffered write just like any other log structure cache. This will allow us to minimize the number of writes that we do ...
Create a free account to access the full course.
By signing up, you agree to Educative's Terms of Service and Privacy Policy