...

/

Designing the System

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