Cost-based Memory Partitioning and Management in Memcached, Damiano Carra (University of Verona), Pietro Michiardi (Eurecom)
- Memcached: Key-value store, common component of web architectures (caching layer), all data kept in-memory (RAM)
- Memchached divides objects in classes depending on size (small, medium, large)
- Memory divided into blocks called "slabs", default slab is 1 MB. Slab contains variable number of objects.
- Slabs are assigned to classes upon request
- After many requests, available memory (divided into slabs) is full, what happens with new request?
- Memcaches uses LRU eviction within the class
- Challenges: how is memory divided among the classes? Static vs. dynamic assignment
- Given a trace and an eviction policty, can compute miss-ratio curves (MRC)