90 likes | 274 Views
Selective Anti-Entropy. Weibin Zhao Henning Schulzrinne {zwb,hgs}@cs.columbia.edu Internet Real-Time Laboratory Columbia University. Introduction. Anti-Entropy Asynchronous replication, eventual consistency Peer-wise session Exchange differences, summary vector
E N D
Selective Anti-Entropy Weibin Zhao Henning Schulzrinne {zwb,hgs}@cs.columbia.edu Internet Real-Time Laboratory Columbia University
Introduction • Anti-Entropy • Asynchronous replication, eventual consistency • Peer-wise session • Exchange differences, summary vector • Complete anti-entropy (CAE) • Reconcile all inconsistent states • Selective anti-entropy (SAE) • Selectively reconcile inconsistent states
Approach • Subsets of updates • Rx: all updates initially received by Rx • Θ(Rx, {Rx1, Rx2, …, Rxk}, Rz): SAE request • Only specified subsets are solicited • SAE types • Select-one-direct: Θ(Rx, {Rz}, Rz) • Select-one-indirect: Θ(Rx, {Ry}, Rz) • Select-multiple: Θ(Rx, {Ry, Rz}, Rz) • Select-all: = CAE
Example: SAE vs. CAE • R2 = {a,b}, R3 = {c,d} CAE R2 {a,b,c} R3 {a,c,d} {d} {a,b,c} R1 R1 {a,b,c} R1 {a,b,c,d} R2 {a,b,c} R3 {a,c,d} SAE {a,b} {c,d} Θ(R1,{R2},R2) Θ(R1,{R3},R3) R1 {a,b,c,d} R1
Parallel SAE Sessions • All select-one-direct sessions • In general, Rx can run kSAE sessions s1, s2, …, sk in parallel if update subsets u1, u2, …, uk do not overlap, i.e., u1 u2 … uk = • Example • if u1= {R2, R4}, u2 = {R3, R5}, then R1 can run s1 and s2 in parallel
Multi-Scope Partial Replication • State set divided into subsets: scopes • Applications: directory services • SLP directories & scopes • UDDI registries & classifications R1(S1,S2,S3) R2(S1) R3(S1,S2) R4(S2,S3) R5(S3) R6(S1,S2) R7(S3)
Summary Problem (2) • Solution space • Summary vector: replica, full replication • Summary matrix: replica &scope, partial replication • SAE + summary vector: replica, partial replication R2(S1) R3(S1,S2) a,c a,c b? (3) (1) R6(S1,S2) R6 states (t1<t2<t3)
Safe SAE Sessions • select-one-direct: Θ(Rx, {Rz}, Rz) • Safe for all • select-one-indirect: Θ(Rx, {Ry}, Rz) • Safe if S(Rx) S(Ry) S(Rz) • Safe: Θ(R3, {R1}, R6) S(R3) S(R1) = {S1, S2} = S(R6) • Unsafe: Θ(R3, {R6}, R2) S(R3) S(R6) = {S1, S2} S(R2) = {S1} • select-multiple or select-all • Safe if all select-one-indirect sessions are safe R1(S1,S2,S3) R2(S1) R3(S1,S2) R6(S1,S2)
Conclusions • Advantages of SAE • Generalize CAE: select-all = CAE • Fine control of received subsets of updates • Perform multiple SAE sessions in parallel • Support multi-scope partial replication efficiently • Prerequisite of SAE • membership information of the replica set • Generic Anti-entropy Request • Anti-entropy type: selective or complete • Each entry: lower & upper bound timestamps