Project

General

Profile

Osd - tiering - fine-grained promotion unit » History » Version 1

Jessica Mack, 07/03/2015 09:06 PM

1 1 Jessica Mack
h1. Osd - tiering - fine-grained promotion unit
2 1 Jessica Mack
3 1 Jessica Mack
h3. Summary
4 1 Jessica Mack
5 1 Jessica Mack
The default object size is 4M. And the promotion in the current code is done in the object unit. In our performance evaluation, it shows the promotion is a huge overhead of the IO request. This is due to the big promotion size. We propose to use a fine-grained promotion unit. An object is divided into 4k units, called pages. And only the required pages of data of the object is promoted when there is a miss. A bitmap is used to track the page usage of the object.
6 1 Jessica Mack
7 1 Jessica Mack
h3. Owners
8 1 Jessica Mack
9 1 Jessica Mack
* Zhiqiang Wang (intel)
10 1 Jessica Mack
* Jian Zhang (intel)
11 1 Jessica Mack
* Jiangang Duan (intel)
12 1 Jessica Mack
13 1 Jessica Mack
h3. Interested Parties
14 1 Jessica Mack
15 1 Jessica Mack
* Name (Affiliation)
16 1 Jessica Mack
* Name (Affiliation)
17 1 Jessica Mack
* Name
18 1 Jessica Mack
19 1 Jessica Mack
h3. Current Status
20 1 Jessica Mack
 
21 1 Jessica Mack
h3. Detailed Description
22 1 Jessica Mack
23 1 Jessica Mack
- Divide the object into 4k units. A unit is called a page. Promotion is done on the per page basis. For every object, use a bitmap to track the usage of the pages.
24 1 Jessica Mack
- The bitmap can be saved in the object info metadata. The bitmap is used to track which pages are in the cache tier, which pages are not.
25 1 Jessica Mack
- When the range of the data of an IO request is hit in the cache tier (those bitmap bits are on), the request can be served by the cache tier. Otherwise a promotion is needed.
26 1 Jessica Mack
- When a promotion is needed, it is done in multiple of pages. These pages are replicated on the cache tier after the promotion. The corresponding bits in the bitmap are marked on after the replication. The other pages which are not promoted are leaving as 'holes' in the filestore.
27 1 Jessica Mack
- Flush/evict can be done on a per object or per page basis. If done on a per object basis, all the on-cache-tier pages of the object are flushed to base tier. If done on a per page basis, need to maintain a LRU list of all the pages.
28 1 Jessica Mack
29 1 Jessica Mack
h3. Work items
30 1 Jessica Mack
31 1 Jessica Mack
h4. Coding tasks
32 1 Jessica Mack
33 1 Jessica Mack
# Task 1
34 1 Jessica Mack
# Task 2
35 1 Jessica Mack
# Task 3
36 1 Jessica Mack
37 1 Jessica Mack
h4. Build / release tasks
38 1 Jessica Mack
39 1 Jessica Mack
# Task 1
40 1 Jessica Mack
# Task 2
41 1 Jessica Mack
# Task 3
42 1 Jessica Mack
43 1 Jessica Mack
h4. Documentation tasks
44 1 Jessica Mack
45 1 Jessica Mack
# Task 1
46 1 Jessica Mack
# Task 2
47 1 Jessica Mack
# Task 3
48 1 Jessica Mack
49 1 Jessica Mack
h4. Deprecation tasks
50 1 Jessica Mack
51 1 Jessica Mack
# Task 1
52 1 Jessica Mack
# Task 2
53 1 Jessica Mack
# Task 3