Download - Maekawa: Quorum Size Research
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
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
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
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
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
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