|
|
Line 1: |
Line 1: |
| A '''quorum''' is the minimum number of votes that a distributed transaction has to obtain in order to be allowed to perform an operation in a [[distributed system]]. A '''quorum'''-based technique is implemented to enforce consistent operation in a distributed system.
| | The writer is referred to as Justin Horst whilst it is not his birth name. His family life in Virgin Islands and his household loves it. After being out of his position for yrs he grew to become an get clerk. His buddies say it is not fantastic for him but what he [http://www.thefreedictionary.com/loves+accomplishing loves accomplishing] is caving but he has not produced a dime with it. He is not godd at style but you could possibly want to check out his web site: http://www.fku-kegler.dk/ungdom/ungdom/kegler/resultater/tasker-mulberry.html<br><br> |
|
| |
|
| == Quorum-based techniques in distributed database systems ==
| | my website: [http://www.fku-kegler.dk/ungdom/ungdom/kegler/resultater/tasker-mulberry.html Mulberry toilettaske] |
| Quorum-based voting can be used as a [[Replication (computer science)#Database replication|replica]] control method<ref name="ozsu">
| |
| {{cite book |last1= Ozsu
| |
| |first1= Tamer M
| |
| |last2= Valduriez
| |
| |first2= Patrick
| |
| |title= Principles of distributed database systems
| |
| |edition= 2nd
| |
| |isbn = 0-13-691643-0
| |
| |year= 1991
| |
| |publisher= Prentice-Hall, Inc.
| |
| |location= Upper Saddle River, NJ
| |
| |chapter= 12
| |
| }}</ref>
| |
| , as well as a commit method to ensure [[Database transaction|transaction]] [[Atomicity (database systems)|atomicity]] in the presence of [[network partitioning]].<ref name="ozsu"/>
| |
| | |
| === Quorum-based voting in commit protocols ===
| |
| In a distributed database system, a transaction could be executing its operations at multiple sites. Since atomicity requires every distributed transaction to be atomic, the transaction must have the same fate ([[Commit (data management)|commit]] or [[Rollback (data management)|abort]]) at every site. In case of network partitioning, sites are partitioned and the partitions may not be able to communicate with each other. This is where a quorum-based technique comes in. The fundamental idea is that a transaction is executed if the majority of sites vote to execute it.
| |
| | |
| Every site in the system is assigned a vote V<sub>i</sub>. Let us assume that the total number of votes in the system is V and the abort and commit quorums are V<sub>a</sub> and V<sub>c</sub>, respectively. Then the following rules must be obeyed in the implementation of the commit protocol:
| |
| # V<sub>a</sub> + V<sub>c</sub> > V, where 0 < V<sub>c</sub>, V<sub>a</sub> <math>\le</math> V.
| |
| # Before a transaction commits, it must obtain a commit quorum V<sub>c</sub>.<br/>The total of at least one site that is prepared to commit and zero or more sites waiting <math>\ge</math> V<sub>c</sub>.<ref>{{cite web|last=Skeen|first=Dale|title=A Quorum-based Commit Protocol|url=https://ecommons.library.cornell.edu/handle/1813/6323|publisher=Cornell University ECommons Library|accessdate=10 February 2013}}</ref>
| |
| # Before a transaction aborts, it must obtain an abort quorum V<sub>a</sub><br/>The total of zero or more sites that are prepared to abort or any sites waiting <math>\ge</math> V<sub>a</sub>.
| |
| | |
| The first rule ensures that a transaction cannot be committed and aborted at the same time. The next two rules indicate the votes that a transaction has to obtain before it can terminate one way or the other.
| |
| | |
| === Quorum-based voting for replica control ===
| |
| In replicated databases, a data object has copies present at several sites. To ensure [[serializability]], no two transactions should be allowed to read or write a data item concurrently. In case of replicated databases, a quorum-based replica control protocol can be used to ensure that no two copies of a data item are read or written by two transactions concurrently.
| |
| | |
| The quorum-based voting for replica control is due to [Gifford, 1979]<ref>
| |
| {{Cite document
| |
| | first = David K.
| |
| | last = Gifford
| |
| | contribution = Weighted voting for replicated data
| |
| | title = SOSP '79: Proceedings of the seventh ACM symposium on Operating systems principles
| |
| | year = 1979
| |
| | pages = 150–162
| |
| | place = Pacific Grove, California, United States
| |
| | url = http://doi.acm.org/10.1145/800215.806583
| |
| | publisher = ACM
| |
| | doi = 10.1145/800215.806583
| |
| | postscript = <!--None-->
| |
| }}</ref>
| |
| . Each copy of a replicated data item is assigned a vote. Each operation then has to obtain a ''read quorum'' (V<sub>r</sub>) or a ''write quorum'' (V<sub>w</sub>) to read or write a data item, respectively. If a given data item has a total of V votes, the quorums have to obey the following rules:
| |
| # V<sub>r</sub> + V<sub>w</sub> > V
| |
| # V<sub>w</sub> > V/2
| |
| | |
| The first rule ensures that a data item is not read and written by two transactions concurrently. The second rule ensures that two write operations from two transactions cannot occur concurrently on the same data item. The two rules ensure that one-copy serializability is maintained.
| |
| | |
| ==See also==
| |
| * [[CAP theorem]]
| |
| * [[Database transaction]]
| |
| * [[Replication (computer science)]]
| |
| * [[Atomicity (database systems)]]
| |
| | |
| ==References==
| |
| <references/>
| |
| | |
| <!-- categories -->
| |
| [[Category:Database management systems]]
| |
| [[Category:Transaction processing]]
| |
The writer is referred to as Justin Horst whilst it is not his birth name. His family life in Virgin Islands and his household loves it. After being out of his position for yrs he grew to become an get clerk. His buddies say it is not fantastic for him but what he loves accomplishing is caving but he has not produced a dime with it. He is not godd at style but you could possibly want to check out his web site: http://www.fku-kegler.dk/ungdom/ungdom/kegler/resultater/tasker-mulberry.html
my website: Mulberry toilettaske