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 15: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 |


