RGW - ActiveActive Arch » History » Version 1
Jessica Mack, 08/26/2015 01:54 AM
1 | 1 | Jessica Mack | h1. RGW - ActiveActive Arch |
---|---|---|---|
2 | |||
3 | h3. Summary |
||
4 | |||
5 | Current multizone RGW setup is only master-slave. In a single region we can only have a single master zone, and all data will be replicated to other slave zones. We plan to make it possible to change that behavior and have all zones in a single region writable. Also, we'll probably rename Region to Zone-Group due to some confusion. |
||
6 | |||
7 | h3. Owners |
||
8 | |||
9 | * Yehuda (Red Hat) |
||
10 | |||
11 | h3. Interested Parties |
||
12 | |||
13 | * Name (affiliation) |
||
14 | |||
15 | h3. Current Status |
||
16 | |||
17 | One master region, zero or more slave regions. |
||
18 | For each region, one master zone, zero or more secondary zones. |
||
19 | Data sync only happen from master zone to secondary zones |
||
20 | Metadata updates happen on master region |
||
21 | |||
22 | h3. Detailed Description |
||
23 | |||
24 | Requirements: |
||
25 | The ability to write data on any zone within a single region, have the data sync happen between all zones (in that region) |
||
26 | No change in metadata propagation |
||
27 | |||
28 | Proposal: |
||
29 | still designate a master zone for metadata changes |
||
30 | all zones within a single region follow all other zones for data sync |
||
31 | all zones within a single region will allow write (unless configured otherwise) |
||
32 | sync agent per zone will follow all relevant zones |
||
33 | bucket index log will contain source zone, and source bucket index log id, for each operation |
||
34 | replica log will hold a list of buck index log states for each bucket instance, one per zone (instead of a single state for the master zone) |
||
35 | extend system user copy operation that is used by the sync agent to be able to set source bucket index log op id for each op |
||
36 | sync agent will set bucket index op id on each object sync operation |
||
37 | extend rgw copy operation to be able to do conditional copy that will check target object modification time (copy if older) |
||
38 | sync agent will use the new conditional copy option |
||
39 | |||
40 | h3. Work items |
||
41 | |||
42 | h4. Coding tasks |
||
43 | |||
44 | # Task 1 |
||
45 | # Task 2 |
||
46 | # Task 3 |
||
47 | |||
48 | h4. Build / release tasks |
||
49 | |||
50 | # Task 1 |
||
51 | # Task 2 |
||
52 | # Task 3 |
||
53 | |||
54 | h4. Documentation tasks |
||
55 | |||
56 | # Task 1 |
||
57 | # Task 2 |
||
58 | # Task 3 |
||
59 | |||
60 | h4. Deprecation tasks |
||
61 | |||
62 | # Task 1 |
||
63 | # Task 2 |
||
64 | # Task 3 |