Project

General

Profile

Librados - support parallel reads » History » Version 1

Jessica Mack, 06/23/2015 09:37 PM

1 1 Jessica Mack
h1. Librados - support parallel reads
2
3
h3. Summary
4
5
Submit read operations to multiple replicas in parallel.
6
7
h3. Owners
8
9
* Name (Affiliation)
10
* Name (Affiliation)
11
* Name
12
13
h3. Interested Parties
14
15
* Sage Weil (Inktank)
16
* Guang Yang (Yahoo!)
17
* Name
18
19
h3. Current Status
20
21
Normally we read from the primary replica.  We can also read from the "closest" replica or from a random replica.
22
23
h3. Detailed Description
24
25
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.
26
27
h3. Work items
28
29
h4. Coding tasks
30
31
# objecter: submit read message to all replicas
32
# objecter: adjust reply path to accept a reply from any (current replica) source
33
# librados: expose internal objecter flag via librados
34
# [optional] objecter: add a 'cancel' operation that can be submitted so that a slow OSD knows that older requests can be ignored
35
# [optoinal] osd: add support for [best-effort] op cancellation
36
# [optional] objecter: use op cancellation when crush mapping changes (in non-failure case)
37
 
38
h4. Documentation tasks
39
40
# ensure that librados flag is properly documented