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