Distributed Locking Algorithms: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 32: | Line 32: | ||
[[File:Distributed Locking Algorithms - Space.png|1000px]] | [[File:Distributed Locking Algorithms - Space.png|1000px]] | ||
== | == Time-Space Tradeoff == | ||
[[File:Distributed Locking Algorithms - Pareto Frontier.png|1000px]] | [[File:Distributed Locking Algorithms - Pareto Frontier.png|1000px]] |
Revision as of 14:47, 15 February 2023
Description
The purpose of a lock is to ensure that among several nodes that might try to do the same piece of work, only one actually does it (at least only one at a time). That work might be to write some data to a shared storage system, to perform some computation, to call some external API, or suchlike. At a high level, there are two reasons why you might want a lock in a distributed application: for efficiency or for correctness.
Parameters
No parameters found.
Table of Algorithms
Name | Year | Time | Space | Approximation Factor | Model | Reference |
---|---|---|---|---|---|---|
Leases (Cary G Gray and David R Cheriton) | 1989 | $O(n)$ | $O(f)$? | Exact | Deterministic | Time |
Chubby (Mike Burrows) | 2006 | $O(n)$ | $O(f)$? | Exact | Deterministic | Time |
Tushar Deepak Chandra and Sam Toueg | 1996 | $O(n)$ | Exact | Deterministic | Time |