Distributed Locking Algorithms: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
== Parameters == | == Parameters == | ||
$n$: number of clients | |||
$f$: number of files | |||
== Table of Algorithms == | == Table of Algorithms == |
Revision as of 08:24, 10 April 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
$n$: number of clients
$f$: number of files
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 |
Time Complexity Graph
Error creating thumbnail: Unable to save thumbnail to destination
Space Complexity Graph
Error creating thumbnail: Unable to save thumbnail to destination
Time-Space Tradeoff
Error creating thumbnail: Unable to save thumbnail to destination