Project

General

Profile

Librbd - shared flag object map » History » Revision 2

Revision 1 (Jessica Mack, 07/03/2015 08:15 PM) → Revision 2/6 (Jessica Mack, 07/03/2015 08:15 PM)

h1. Librbd - shared flag object map 

 h3. Summary 

 Submit read operations to multiple replicas in parallel. 

 h3. Owners 

 * Name (Affiliation) 
 * Name (Affiliation) 
 * Name 

 h3. Interested Parties 

 * Sage Weil (Inktank) 
 * Guang Yang (Yahoo!) 
 * Name 

 h3. Current Status 

 Normally we read from the primary replica.    We can also read from the "closest" replica or from a random replica. 

 h3. Detailed Description 

 Add a new op flag that would send reads to all replicas.    The quickest reply would "win" and others would be ignored.    This is useful in cases where there is sufficient IO on the backend and we want to minimize observed latency, particularly the long tail due to unfortunately timing with other expensive operations. 

 h3. Work items 

 h4. Coding tasks 

 # objecter: submit read message to all replicas 
 # objecter: adjust reply path to accept a reply from any (current replica) source 
 # librados: expose internal objecter flag via librados 
 # [optional] objecter: add a 'cancel' operation that can be submitted so that a slow OSD knows that older requests can be ignored 
 # [optoinal] osd: add support for [best-effort] op cancellation 
 # [optional] objecter: use op cancellation when crush mapping changes (in non-failure case) 
 
 h4. Documentation tasks 

 # ensure that librados flag is properly documented