Project

General

Profile

Rbd - client side caching enhancements (part I) » History » Revision 3

Revision 2 (Tushar Gohad, 10/26/2015 01:58 PM) → Revision 3/5 (Tushar Gohad, 10/26/2015 11:27 PM)

h1. Rbd - client side caching enhancements (part I) 

 h3. Rationale 

 RBD cache currently supports DRAM as the only option for caching.     The proposal is to enhance the RBD caching layer to support "pluggable" non-volatile storage backends.    Also proposed is an extension to support RBD cache partitioning (among random and sequential streams, or among competing apps with differing access rates, etc). 

 This enhancement has been discussed at the 2015 Ceph hackathon and also at various meetups later on with the Ceph/RBD core.    With DRAM being the only RBD caching option, content cacheability is limited by the size of DRAM - proposal here is to be able to plug in SSD backends to address the "size" limitation, enable cache tiering and allow integration of 3rd party software caching solutions such as Intel CAS that make use of the caching hierarchy intelligently. 

 With Linux Containers becoming common deployment vehicle, eliminating RBD cache size limitation for per-client caching should help improve access latency with the added density.    We see interest in this uplift from telco service providers for improving access latency for the VDI, media streaming, db workloads.  

 h3. Assumptions/Requirements 

 * This blueprint proposes RBD plumbing changes to plug in alternate caching backends 
 * Public RBD interfaces are not to change 
 * Shared RBD cache implementation is proposed as a "Part II" extension to this blueprint 

 h3. Owners 

 * Tushar Gohad (Intel) 
 * Anjaneya Chagam (Intel) 

 h3. Interested Parties 

 * Telco service providers- VDI, media streaming workloads 

 h3. Current Status 
 
 RBD cache currently supports DRAM as the only option for An SSD-based caching - there prototype is no plumbing for plugging in alternate caching backends. 

 under development. 

 

 h3. Work items 



 h3. Coding tasks 

 # Task 1 
 # Task 2 
 # Task 3 

 h3. Build / release tasks 

 # Task 1 
 # Task 2 
 # Task 3 

 h3. Documentation tasks 

 # Task 1 
 # Task 2 
 # Task 3 

 h3. Deprecation tasks 

 # Task 1 
 # Task 2 
 # Task 3