Project

General

Profile

Rbd - kernel rbd client supports copy-on-read » History » Version 1

Jessica Mack, 08/26/2015 01:38 AM

1 1 Jessica Mack
h1. Rbd - kernel rbd client supports copy-on-read
2
3
h3. Summary
4
5
Feature copy-on-read will help to improve read perfomance of clone image, 
6
especially when clone image is apart from parent image which is in remote data center
7
8
h3. Owners
9
10
* Min Chen (minchen@ubuntukylin.com)
11
* Li Wang (liwang@ubuntukylin.com)
12
* Name
13
14
h3. Interested Parties
15
16
* Name (Affiliation)
17
* Name (Affiliation)
18
* Name
19
20
h3. Current Status
21
22
Only librbd supports copy-on-read: https://github.com/ceph/ceph/pull/3040,
23
and the copy-on-read algorithm has been accepted. 
24
It is not supported by kernel rbd client currently.
25
 
26
h3. Detailed Description
27
28
When read part or entire clone image object, firstly we should stat it from osd to find if object exists in clone image, 
29
if not, just read object content from parent, which is the same as copy-on-write do.
30
In addtion, record the object has been searched, and keep its data content in memory, those are kept in
31
copyup_list, then write data content to clone image object asychronously.
32
The second time read the same object, we frist decide if it has been copied up from parent according to copyup_list.
33
if copied up, just read object from client memory, else read it from clone image. 
34
 
35
h3. Work items
36
37
h4. Coding tasks
38
39
# Add an option, to turn on/off it in user space.
40
# Add list_head copyup_list to struct rbd_img_request to record which object has been read from parent.
41
# Implement state machine of copy-on-read algorithm.
42
43
h4. Build / release tasks
44
45
# Task 1
46
# Task 2
47
# Task 3
48
49
h4. Documentation tasks
50
51
# Task 1
52
# Task 2
53
# Task 3
54
55
h4. Deprecation tasks
56
57
# Task 1
58
# Task 2
59
# Task 3