sorting on skip chains ajoy k. datta, lawrence l. larmore, and stéphane devismes
DESCRIPTION
Skip Chain Sorting December 2, 2011PDAA'2011, Osaka 3 6 2TRANSCRIPT
Sorting on Skip Chains
Ajoy K. Datta, Lawrence L. Larmore, and Stéphane Devismes
PDAA'2011, Osaka
Skip Chain
December 2, 2011
Left Right
Major nodes
Relay nodes
PDAA'2011, Osaka
Skip Chain Sorting
December 2, 2011
3 6 2
PDAA'2011, Osaka
Skip Chain Sorting
December 2, 2011
3 6 2
2 3 6
PDAA'2011, Osaka
Contribution
• Skip Chain Sorting Algorithm– Self-stabilizing– Silent– Locally shared memory model
• Unfair demon• O(b) space, b = number of bits to encode a value• O(md) rounds
– m : number of major nodes– d : maximum number of relay between two major nodes– md = O(n) if the spacing between major processes is roughtly equal
December 2, 2011
PDAA'2011, OsakaDecember 2, 2011
Self-Stabilization: Closure + Convergence
PDAA'2011, OsakaDecember 2, 2011
Self-Stabilization: Closure + Convergence
States of the System
PDAA'2011, OsakaDecember 2, 2011
Self-Stabilization: Closure + Convergence
States of the System
Illegitimate States Legitimate States
PDAA'2011, OsakaDecember 2, 2011
Self-Stabilization: Closure + Convergence
States of the System
Closure
PDAA'2011, OsakaDecember 2, 2011
Self-Stabilization: Closure + Convergence
States of the System
Closure
PDAA'2011, OsakaDecember 2, 2011
Self-Stabilization: Closure + Convergence
States of the System
Closure
PDAA'2011, OsakaDecember 2, 2011
Self-Stabilization: Closure + Convergence
States of the System
Convergence
PDAA'2011, OsakaDecember 2, 2011
Self-Stabilization: Closure + Convergence
States of the System
Convergence
PDAA'2011, OsakaDecember 2, 2011
Self-Stabilization: Closure + Convergence
States of the System
Convergence
PDAA'2011, OsakaDecember 2, 2011
Tolerate Transient Faults
• E.g., any finite number of memory or message corruptions, or topological changes
PDAA'2011, OsakaDecember 2, 2011
Tolerate Transient Faults
• E.g., any finite number of memory or message corruptions, or topological changes
PDAA'2011, Osaka
Silence
• “The system eventually reaches a terminal configuration where the values of the variables are fixed” [Dolev et al, 1996]
December 2, 2011
PDAA'2011, Osaka
Related Work
• New problem
• A generalization of the sorting problem– Oriented chain [Bein et al, 2008]• Self-stabilizing• O(n) round, O(b) space
December 2, 2011
PDAA'2011, Osaka
Overview
December 2, 2011
PDAA'2011, Osaka
Overview
• Idea : distributed bubble sort
December 2, 2011
PDAA'2011, Osaka
Overview
• Idea : distributed bubble sort
December 2, 2011
Arbitrary Configurations
PDAA'2011, Osaka
Overview
• Idea : distributed bubble sort
December 2, 2011
Arbitrary Configurations
Normal Configurations
Error Correction
PDAA'2011, Osaka
Overview
• Idea : distributed bubble sort
December 2, 2011
Arbitrary Configurations
Normal Configurations
Legitimate Configurations
Error Correction
Sorting
PDAA'2011, Osaka
Data Structure
December 2, 2011
3 6 2
PDAA'2011, Osaka
Swap
December 2, 2011
6 2
PDAA'2011, Osaka
Swap
December 2, 2011
6 2
6 26 6 6 6
PDAA'2011, Osaka
Swap
December 2, 2011
6 2
6 26 6 6 6
2 62 2 2 2
PDAA'2011, Osaka
Swap
December 2, 2011
6 2
6 26 6 6 6
2 62 2 2 2
Synchronization between swaps : 4 colors
PDAA'2011, Osaka
Colors
• A value moves to the left at the crest of wave 0
• A value moves to the right at the crest of wave 1
• Colors 2 and 3 to avoid ambiguïty and to synchronize
• Color E: error colorDecember 2, 2011
PDAA'2011, Osaka
Example
December 2, 2011
X Y Z
33 03 20
Compare and swap
V(y)V(x)
3 3 3 0 0 0
PDAA'2011, Osaka
Example
December 2, 2011
X Y Z
33 10 20
V(y)’V(x)’
3 3 3 0 0 0
0, V(x)’ 1, V(y)’
PDAA'2011, Osaka
Example
December 2, 2011
X Y Z
03 10 21
V(y)’V(x)’
0 0 0 1 1 1
Compare and swap
V(y)’V(u) V(x)’
PDAA'2011, Osaka
Example
December 2, 2011
X Y Z
10 10 32
V(y)’V(x)’
0 0 0 1 1 1
V(y)’V(u)’ V(x)’’
21, V(x)’’
PDAA'2011, Osaka
Example
December 2, 2011
X Y Z
10 21 32
V(y)’V(x)’’
1 1 1 2 2 2
V(y)’V(u)’ V(x)’’
PDAA'2011, Osaka
Example
December 2, 2011
X Y Z
10 32 32
V(y)’V(x)’’
1 1 1 2 2 2
V(y)’V(u)’ V(x)’’
2 3
PDAA'2011, Osaka
Example
December 2, 2011
X Y Z
20 32 33
V(y)’V(x)’’
2 2 2 3 3 3
V(y)’V(u)’ V(x)’’
0, V(z)1, V(u)’’
PDAA'2011, Osaka
Example
December 2, 2011
X Y Z
21 32 03
V(y)’V(x)’’
2 2 2 3 3 3
V(y)’ V(z)V(u)’’ V(x)’’Compare and swap
PDAA'2011, Osaka
Example
December 2, 2011
X Y Z
32 32 10
V(y)’V(x)’’
2 2 2 3 3 3
V(y)’’ V(z)’V(u)’’ V(x)’’
0, V(y)’’ 3
PDAA'2011, Osaka
Example
December 2, 2011
X Y Z
32 03 10
V(y)’’V(x)’’
3 3 3 0 0 0
V(y)’’ V(z)’V(u)’’ V(x)’’
3 2
PDAA'2011, Osaka
Example
December 2, 2011
X Y Z
33 03 20
V(y)’’V(x)’’
3 3 3 0 0 0
V(y)’’ V(z)’V(u)’’ V(x)’’
PDAA'2011, Osaka
Error correction
December 2, 2011
PDAA'2011, Osaka
Error correction
December 2, 2011
PDAA'2011, Osaka
Error correction
December 2, 2011
PDAA'2011, Osaka
Error correction
December 2, 2011
PDAA'2011, Osaka
Error correction
December 2, 2011
PDAA'2011, Osaka
Uncorrect swap
December 2, 2011
X Y Z
33 03 20
Compare and swap
bc
3 3 3 0 0 0
a c ca b b b b
PDAA'2011, Osaka
Uncorrect swap
December 2, 2011
X Y Z
33 10 203 3 3 0 0 0
0, b 1, c
Bad swap
cba c ca b b b b
PDAA'2011, Osaka
Uncorrect swap
December 2, 2011
X Y Z
33 10 203 3 3 0 0 0
0, b 1, c
cba c ca b b b b
aError correction
PDAA'2011, Osaka
Uncorrect swap
December 2, 2011
X Y Z
33 10 203 3 3 1 1 0
1, c
cba a aa c c b b
aError correction
PDAA'2011, Osaka
Uncorrect swap
December 2, 2011
X Y Z
33 10 203 3 3 1 1 0
1, c
cba a aa c c b b
aError correction
To undo the swap, we should remember that we do a swap!Status : S or U
S
PDAA'2011, Osaka
Uncorrect swap
December 2, 2011
X Y Z
33 10 203 3 3 1 1 0
1, c
baa a aa c c b b
bError correction
To undo the swap, we should remember that we do a swap!Status : S or U
S
PDAA'2011, Osaka
Silence
December 2, 2011
An additional Boolean variable : DoneDone => Stop initiating wave color
2 2 2 2 3 3 3 3 3 6
PDAA'2011, Osaka
Silence
December 2, 2011
An additional Boolean variable : DoneDone => Stop initiating wave color
2 2 2 2 3 3 3 3 3 6
PDAA'2011, Osaka
Silence
December 2, 2011
An additional Boolean variable : DoneDone => Stop initiating wave color
2 2 2 2 3 3 3 3 3 6
3≤6 & Color=3 →Done<-True; Color<-0
PDAA'2011, Osaka
Silence
December 2, 2011
2 2 2 2 3 3 3 3 3 6
Color=3 & R.color=0 & R.done→Done<-True; Color<-0Value<-R.Value
PDAA'2011, Osaka
Silence
December 2, 2011
2 2 2 2 3 3 3 3 3 6
Color=3 & R.color=0 & R.done &Value≤R.Value →Done<-True; Color<-0
PDAA'2011, Osaka
Silence
December 2, 2011
2 2 2 2 3 3 3 3 3 6
At the end, for all node:- Color = 0- Done = true
No enabled action
PDAA'2011, Osaka
Perspective
• Can we enhance the round complexity to O(n) rounds ?
• Step complexity ?
December 2, 2011
PDAA'2011, Osaka
Thank youDecember 2, 2011
PDAA'2011, Osaka
Min-Max Search Tree
December 2, 2011
10
1
95
83 7
62
<= <=
4<=
min
min
max
max