Project

General

Profile

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