Add LevelDB support to ceph cluster backend store » History » Version 1
Jessica Mack, 06/09/2015 06:26 PM
1 | 1 | Jessica Mack | h1. Add LevelDB support to ceph cluster backend store |
---|---|---|---|
2 | 1 | Jessica Mack | |
3 | 1 | Jessica Mack | h3. Summary |
4 | 1 | Jessica Mack | |
5 | 1 | Jessica Mack | Abstract a general interface and implement a LevelDB driver for ceph cluster backend store. |
6 | 1 | Jessica Mack | |
7 | 1 | Jessica Mack | h3. Owners |
8 | 1 | Jessica Mack | |
9 | 1 | Jessica Mack | * Name (Affiliation) |
10 | 1 | Jessica Mack | * Name (Affiliation) |
11 | 1 | Jessica Mack | * Name |
12 | 1 | Jessica Mack | |
13 | 1 | Jessica Mack | h3. Interested Parties |
14 | 1 | Jessica Mack | |
15 | 1 | Jessica Mack | * Haomai Wang (UnitedStack) |
16 | 1 | Jessica Mack | * Joao Luis (Inktank) |
17 | 1 | Jessica Mack | * Sam Just (Inktank) |
18 | 1 | Jessica Mack | |
19 | 1 | Jessica Mack | h3. Current Status |
20 | 1 | Jessica Mack | |
21 | 1 | Jessica Mack | There isn't exists any other implementation except the local filesystem implementation which support POSIX interface. |
22 | 1 | Jessica Mack | |
23 | 1 | Jessica Mack | h3. Detailed Description |
24 | 1 | Jessica Mack | |
25 | 1 | Jessica Mack | Every node of ceph cluster has a backend filesystem such as btrfs, xfs and ext4 that provides storage for data objects, whose location are determined by CRUSH algorithm. There should exists an abstract interface sitting between osd and backend store, allowing different backend store implementation. Currently, we only have general POSIX interface. LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. We could implement a LevelDB backend to support base operations correspond to POSIX operations. LevelDB driver enables gateway to communicate with LevelDB to store objects on the node basis. |
26 | 1 | Jessica Mack | LevelDB driver is attractive by the folks who own a special use case such as a write-heave system. If we can abstract a general interface, we can choose other DBM if you find it more suitable, such as Kyoto Cabinet, BDB. Futhermore, we can choose backen store for each OSD node. So we have different OSD type for special purpose. |
27 | 1 | Jessica Mack | Expected Results: Objects can be stored reliably to LevelDB. The IO performance and recovery process can be comparable to original stores. And for special case, LevelDB driver should have much better performance than local filesystem backend driver. The snapshot and any features you think of are optional. |
28 | 1 | Jessica Mack | |
29 | 1 | Jessica Mack | h3. Work items |
30 | 1 | Jessica Mack | |
31 | 1 | Jessica Mack | h3. 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 | h3. 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 | h3. 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 | h3. Deprecation tasks |
50 | 1 | Jessica Mack | |
51 | 1 | Jessica Mack | # Task 1 |
52 | 1 | Jessica Mack | # Task 2 |
53 | 1 | Jessica Mack | # Task 3 |