Osd - tiering - reduce readwrite latencies on cache tier miss » History » Version 1
Jessica Mack, 07/03/2015 09:08 PM
1 | 1 | Jessica Mack | h1. Osd - tiering - reduce readwrite latencies on cache tier miss |
---|---|---|---|
2 | 1 | Jessica Mack | |
3 | 1 | Jessica Mack | h3. Summary |
4 | 1 | Jessica Mack | |
5 | 1 | Jessica Mack | For a read, when the object is missing in cache tier, after promoting it from the base tier, the current code first replicates this object. Then the read request is served after the replication. We can serve the read request after the promotion without waiting for the completion of the replication to reduce latency. |
6 | 1 | Jessica Mack | For a write, when the object is missing in cache tier, after promoting it from the base tier, the current code replicates the object just promoted. And then updating the object with the data from client write. Another replication is needed for the client write. The whole write operation takes two replications. If we don’t replicate the object after the promotion, instead we replicate it after the write request has updated the data, we can save the time for one replication. |
7 | 1 | Jessica Mack | For a full object write, there is no need to promote the object data since it is going to be overwritten anyway. Only the object attributes and omap need to be promoted. |
8 | 1 | Jessica Mack | |
9 | 1 | Jessica Mack | h3. Owners |
10 | 1 | Jessica Mack | |
11 | 1 | Jessica Mack | * Zhiqiang Wang (intel) |
12 | 1 | Jessica Mack | * Jian Zhang (intel) |
13 | 1 | Jessica Mack | * Jiangang Duan (intel) |
14 | 1 | Jessica Mack | |
15 | 1 | Jessica Mack | h3. Interested Parties |
16 | 1 | Jessica Mack | |
17 | 1 | Jessica Mack | * Name (Affiliation) |
18 | 1 | Jessica Mack | * Name (Affiliation) |
19 | 1 | Jessica Mack | * Name |
20 | 1 | Jessica Mack | |
21 | 1 | Jessica Mack | h3. Current Status |
22 | 1 | Jessica Mack | |
23 | 1 | Jessica Mack | h3. Detailed Description |
24 | 1 | Jessica Mack | |
25 | 1 | Jessica Mack | 1) Read: |
26 | 1 | Jessica Mack | - In '_write_copy_chunk', based on the read request's offset and length, copy the corresponding promoted data to the 'outdata' of OSDOp. Mark the requested data is in the OSDOp after the copying. |
27 | 1 | Jessica Mack | - When the read request is unblocked and dequeued after the promotion, in do_op, if the requested data is already in the 'outdata' of OSDOp, don't need to get rw lock. Otherwise the read request is enqueued again to wait for the completion of the promotion replication. |
28 | 1 | Jessica Mack | - In 'do_osd_ops', if the requested data is already in the 'outdata' of OSDOp, do not need to read data from the backend objectstore. |
29 | 1 | Jessica Mack | 2) Write: |
30 | 1 | Jessica Mack | - In '_write_copy_chunk', new a OpContext to store all the data promoted from base tier. Don't initiate repop to do replications in 'process_copy_chunk' and 'finish_promote". |
31 | 1 | Jessica Mack | - When the write request is unblocked and dequeued after the promotion, in do_op, use the OpContext in the previous step for the write, don't need to new another one. |
32 | 1 | Jessica Mack | - In 'do_osd_ops', update the OpContext with the data from client write, and submit this OpContext for replications. |
33 | 1 | Jessica Mack | 3) Write full: |
34 | 1 | Jessica Mack | - In 'start_copy', set 'data_complete' of 'object_copy_cursor_t' in the 'cop' to true before promotion. So that when the base tier won't copy the data when handling the copy get request. |
35 | 1 | Jessica Mack | - The other code path is the same as in the previous write operation. |
36 | 1 | Jessica Mack | |
37 | 1 | Jessica Mack | h3. Work items |
38 | 1 | Jessica Mack | |
39 | 1 | Jessica Mack | h4. Coding tasks |
40 | 1 | Jessica Mack | |
41 | 1 | Jessica Mack | # Task 1 |
42 | 1 | Jessica Mack | # Task 2 |
43 | 1 | Jessica Mack | # Task 3 |
44 | 1 | Jessica Mack | |
45 | 1 | Jessica Mack | h4. Build / release tasks |
46 | 1 | Jessica Mack | |
47 | 1 | Jessica Mack | # Task 1 |
48 | 1 | Jessica Mack | # Task 2 |
49 | 1 | Jessica Mack | # Task 3 |
50 | 1 | Jessica Mack | |
51 | 1 | Jessica Mack | h4. Documentation tasks |
52 | 1 | Jessica Mack | |
53 | 1 | Jessica Mack | # Task 1 |
54 | 1 | Jessica Mack | # Task 2 |
55 | 1 | Jessica Mack | # Task 3 |
56 | 1 | Jessica Mack | |
57 | 1 | Jessica Mack | h4. Deprecation tasks |
58 | 1 | Jessica Mack | |
59 | 1 | Jessica Mack | # Task 1 |
60 | 1 | Jessica Mack | # Task 2 |
61 | 1 | Jessica Mack | # Task 3 |