Maekawa: Quorum Size Research
Jeremy MillerKent State UniversityNovember 28th, 2011
1
Outline•Overview of Maekawa•Quorum Creation•Experimental Setup•Results•Future Work•Conclusions
2
Outline•Overview of Maekawa•Quorum Creation•Experimental Setup•Results•Future Work•Conclusions
3
Overview of Maekawa•Permission based DMX solution•Each process has a quorum•Each process only has one permission to give•Process is granted access to the critical section
if it receives permission from its entire quorum•6 Message types:
▫Request, Permission, Release Message Complexity: 3√N
▫Failure, Inquire, Yield (Deadlock Messages) Message Complexity: 6√N
4
Outline•Overview of Maekawa•Quorum Creation•Experimental Setup•Results•Future Work•Conclusions
5
Billiards Algorithm
1st Path2nd Path 3rd Path
1st Path 2nd Path3rd Path
Where to start
Where to start
Quorums:Quorum[0]= { }Quorum[1]= { }Quorum[2]= { }Quorum[3]= { }
6
Billiards Algorithm
1st Path2nd Path 3rd Path
1st Path 2nd Path3rd Path
Where to start
Where to start
Quorums:Quorum[0]= {0, 1, 2}Quorum[1]= { }Quorum[2]= { }Quorum[3]= { }
7
Billiards Algorithm
1st Path2nd Path 3rd Path
1st Path 2nd Path3rd Path
Where to start
Where to start
Quorums:Quorum[0]= {0, 1, 2}Quorum[1]= {1, 2, 3}Quorum[2]= { }Quorum[3]= { }
8
Billiards Algorithm
1st Path2nd Path 3rd Path
1st Path 2nd Path3rd Path
Where to start
Where to start
Quorums:Quorum[0]= {0, 1, 2}Quorum[1]= {1, 2, 3}Quorum[2]= {0, 2, 3}Quorum[3]= { }
9
Billiards Algorithm
1st Path2nd Path 3rd Path
1st Path 2nd Path3rd Path
Where to start
Where to start
Quorums:Quorum[0]= {0, 1, 2}Quorum[1]= {1, 2, 3}Quorum[2]= {0, 2, 3}Quorum[3]= {0, 1, 3}
10
Non-Billiards Algorithm•Make a matrix
counting upwards
•Find the process
•Draw two lines, add all of the processes hit to the quorum.
0 1
2 3
Quorums:Quorum[0]= { }Quorum[1]= { }Quorum[2]= { }Quorum[3]= { }
11
Non-Billiards Algorithm•Make a matrix
counting upwards
•Find the process
•Draw two lines, add all of the processes hit to the quorum.
0 1
2 3
Quorums:Quorum[0]= {0, 1, 2}Quorum[1]= { }Quorum[2]= { }Quorum[3]= { }
12
Non-Billiards Algorithm•Make a matrix
counting upwards
•Find the process
•Draw two lines, add all of the processes hit to the quorum.
0 1
2 3
Quorums:Quorum[0]= {0, 1, 2}Quorum[1]= {0, 1, 3}Quorum[2]= { }Quorum[3]= { }
13
Non-Billiards Algorithm•Make a matrix
counting upwards
•Find the process
•Draw two lines, add all of the processes hit to the quorum.
0 1
2 3
Quorums:Quorum[0]= {0, 1, 2}Quorum[1]= {0, 1, 3}Quorum[2]= {0, 2, 3}Quorum[3]= { }
14
Non-Billiards Algorithm•Make a matrix
counting upwards
•Find the process
•Draw two lines, add all of the processes hit to the quorum.
0 1
2 3
Quorums:Quorum[0]= {0, 1, 2}Quorum[1]= {0, 1, 3}Quorum[2]= {0, 2, 3}Quorum[3]= {1, 2, 3}
15
Outline•Overview of Maekawa•Quorum Creation•Experimental Setup•Results•Future Work•Conclusions
16
Billiards vs. Non-Billiards•Testing 2 parameters: Message Complexity and
Correctness in critical section entry.•Hypothesis: Billiards will have smaller message
complexity but a worse correctness in CS entry.•Methods:
▫Set up 2 fixed quorums for each type. Run increasingly large sample sizes of CS entry. Run each test 10 times and average the results.
▫Billiards: 24 Processes, 7 Quorum Size.▫Non-Billiards: 25 Processes, 9 Quorum Size
17
Outline•Overview of Maekawa•Quorum Creation•Experimental Setup•Results•Future Work•Conclusions
18
Results
19
Results (Cont.)
20
Results (Cont.)•On all tests done the correctness of CS
entry was 100% for both Billiards and Non-Billiards
•Not once was there incorrect order in entry.
•Expected a wrong entry in the first 1-3 entries every once in a while.
21
Outline•Overview of Maekawa•Quorum Creation•Experimental Setup•Results•Future Work•Conclusions
22
Future Work•Test different sizes of quorums, not only 2
fixed sizes.
•Force the algorithms into out-of-order situations initially and see if there is any difference in correctness between the two algorithms.
23
Outline•Overview of Maekawa•Quorum Creation•Experimental Setup•Results•Future Work•Conclusions
24
Conclusions•Billiards algorithm is the all-around best
algorithm for quorum creation
•Both algorithms level off in messages sent around 500 critical section entries
•No advantage to use anything other than billiards quorum creation
25
References•Agrawal, D. "Billiard Quorums on the
Grid." Information Processing Letters 64.1 (1997): 9-16. Print.
•Code Defense Link: Code Defense•Thank you.•Questions?
26