Presentation is loading. Please wait.

Presentation is loading. Please wait.

Hash History: A Method for Reconciling Mutual Inconsistency in Optimistic Replication Brent ByungHoon Kang, Robert Wilensky and John Kubiatowicz CS Division,

Similar presentations


Presentation on theme: "Hash History: A Method for Reconciling Mutual Inconsistency in Optimistic Replication Brent ByungHoon Kang, Robert Wilensky and John Kubiatowicz CS Division,"— Presentation transcript:

1 Hash History: A Method for Reconciling Mutual Inconsistency in Optimistic Replication Brent ByungHoon Kang, Robert Wilensky and John Kubiatowicz CS Division, UC Berkeley

2 Background Optimistic Replication Allow mutable replica to be inconsistent temporarily in a controlled way for high availability and performance Tentative update support in OceanStore Bayou, USENET, and Peer-to-Peer File System (e.g., Ivy, Pangaea, etc.) Need Mechanism for Figuring out the ordering among updates Extracting deltas to be exchanged during reconciliation

3 Previous Approaches: Version Vectors Widely used in reconciling replicas In most weakly consistent replication systems Bayou, Ficus, Coda, Ivy, Pangaea … etc. Complexity of management grows As new replica site added or deleted Need to assign unique id dynamically for newly added replica sites Doesn’t scale as number of replica site increases Version vector needs one entry for each replica site Size of vector grows in proportion to number of replica sites

4 Site ASite BSite C ABC 000 V 0,A V 1,A V 2,B V 3,C ABC 100 ABC 210 site_id counter ABC 212 ABC 001 ABC 010 d3d3 d2d2 d1d1 V 4,A m4m4 V 5,C m5m5

5 Site A New Site D ABC 210 ABC 010 ABC 212 ABC 210 Site C O1: Site B D 0 D 0 D 0 D 0

6 Our Proposal: Hash History Each site keeps a record of the hash of each version Capture dependency among versions as a directed graph of version hashes (i.e., hash history) The sites exchange the hash history in reconciling replicas The most recent common ancestral version can be found, if no version dominates Useful hints in a subsequent diffing/merging

7 Site ASite BSite C V 0,A V 1,A V 2,B V 3,C d3d3 d2d2 d1d1 H 0,A H i,site = hash (V i,site )

8 Site ASite BSite C V 0,A V 1,A V 2,B V 3,C V 4,A d3d3 d2d2 d1d1 m4m4 H 0,A H 1,A H 0,A H 2,B H 0,A H 3,C H i,site = hash (V i,site )

9 Site ASite BSite C V 0,A V 1,A V 2,B V 3,C V 4,A V 5,C d3d3 d2d2 d1d1 m4m4 m5m5 H 0,A H 1,A H 0,A H 2,B H 0,A H 3,C H 0,A H 1,A H 2,B H 4,A H i,site = hash (V i,site )

10 Site ASite BSite C V 0,A V 1,A V 2,B V 3,C V 4,A V 5,C d3d3 d2d2 d1d1 m4m4 m5m5 H 0,A H 1,A H 0,A H 2,B H 0,A H 3,C H 0,A H 1,A H 2,B H 4,A H 0,A H 1,A H 2,B H 4,A H 3,C H 5,C H i,site = hash (V i,site )

11 Site A New Site D Site C O1: Site B H 0,A H 1,A H 2,B H 4,A H 0,A H 2,B H 0,A H 1,A H 2,B H 4,A H 3,C H 5,C H 0,A H 1,A H 2,B H 4,A

12 Hash History Graph Hash History with Hashtable ChildParents H 0,A null H 1,A H 0,A H 2,B H 0,A H 3,C H 0,A H 4,A H 1,A : H 2,B H 5,C H 4,A : H 3,C (a)(b) Latest : H 5,C H 0,A H 1,A H 2,B H 4,A H 3,C H 5,C

13 Hash History Graph Hash History with Hashtable ChildParentsdelta H 0,A null H 1,A H 0,A d1d1 H 2,B H 0,A d2d2 H 3,C H 0,A d3d3 H 4,A H 1,A : H 2,B m4m4 H 5,C H 4,A : H 3,C m5m5 (a)(b) Latest : H 5,C H 0,A H 1,A H 2,B H 4,A H 3,C H 5,C d3d3 d2d2 d1d1 m5m5 m4m4

14 HH Properties Size of hash history is unbounded Simple Aging Sharable Archived Hash Histories Can capture equality case When two different schedule of deltas produce the same output Helps faster convergence

15 Why Less Conflict in HH than VV HH can covey equality information to the descendents while VV cannot E.g., v1 = v2 = C merges then v3 = E merges then v4 = v3 and v4 could be the same but VV shows conflict ! If v3 and v4 are considered equal, then all descendents of v4 will dominate v3. If v3 and v4 are considered as in conflict, all descendents of v4, will be in conflict with v3

16 Experiment Goal Comparison with version vector result: HH converges faster with a lower conflict rate than a version vector scheme To what extent is this true in practice? Aging Policy: the aging period for pruning hash history vs. HH size vs. the false conflict rate due to aging when the pruned part of the hash history is required for determining the version dominance

17 Simulation Setup Event-driven simulator Events are collected from CVS logs Each user represent a replica site Reads the event After each event, the simulator repeats the anti-entropy for 50% (or 25%) of the total number of sites. E.g., if there are 20 sites so far, the anti-entropy is repeated for 10 times with 50% parameter after each event.

18 CVS Trace Data (from sourceforge.net)

19

20

21

22 Aging Period vs. HH Size

23 Aging Period vs. False Conflict

24 Conclusion Simple to maintain No complexity in site addition/deletion No need to assign unique id dynamically for newly added replica sites Scalable to thousands of sites HH grows in proportion to number of update instances not number of sites Faster Convergence HH can capture and propagate equality information HH growth can be controlled effectively by using aging policy or sharing archived hash history

25 Future Work Security aspect of HH Self-verifiable Can detect mal-functioning site More information Hash History Approach for Reconciling Mutual Inconsistency in Optimistic Replication, B. Kang, R. Wilensky and J. Kubiatowicz, The 23rd International Conference on Distributed Computing Systems (ICDCS), 2003, Providence, Rhode Island USA http://www.cs.berkeley.edu/~hoon/hashhistory

26

27 Site ASite BSite C ABC 000 A0A0 B0B0 C0C0 V 0,A V 1,A V 2,B V 3,C V 4,A V 5,C  site value = sign site (value of site’s local counter) ABC 100 A1A1 B0B0 C0C0 ABC 210 A2A2 B1B1 C0C0 site counte r signat ure ABC 212 A2A2 A1A1 A2A2 ABC 001 A0A0 B0B0 C1C1 ABC 010 A0A0 B1B1 C0C0

28 Site A V 0,A Site B V 1,A Site C V 2,B V 3,C V 4,A V 5,C nilH0H0 H0H0 H1H1 A0A0 A1A1 H0H0 H0H0 H 1 : H 2 H0H0 H1H1 H2H2 H4H4 A0A0 A1A1 B2B2 A4A4 nilH0H0 H0H0 H2H2 A0A0 B2B2 H i = hash (V i,site )  site k = hash(  k’s parents || H k ) nilH0H0 H0H0 H3H3 A0A0 C3C3 H0H0 H0H0 H 1 : H 2 H0H0 H 3 :H 4 H0H0 H1H1 H2H2 H4H4 H3H3 H5H5 A0A0 A1A1 B2B2 A4A4 C3C3 C5C5 nil H0H0 A0A0 parents child authent icator

29 Site ASite BSite C V 0,A V 1,A V 2,B V 3,C V 4,A V 5,C d3d3 d2d2 d1d1 m4m4 m5m5

30 Site A V 0,A Site B V 1,A Site C V 2,B V 3,C V 4,A V 5,C nilH0H0 H0H0 H1H1 H0H0 H0H0 H 1 : H 2 H0H0 H1H1 H2H2 H4H4 nilH0H0 H0H0 H2H2 H i = hash (V i,site ) nilH0H0 H0H0 H3H3 H0H0 H0H0 H 1 : H 2 H0H0 H 3 :H 4 H0H0 H1H1 H2H2 H4H4 H3H3 H5H5 nil H0H0 parents child


Download ppt "Hash History: A Method for Reconciling Mutual Inconsistency in Optimistic Replication Brent ByungHoon Kang, Robert Wilensky and John Kubiatowicz CS Division,"

Similar presentations


Ads by Google