Distributed lock manager: Difference between revisions

Content deleted Content added
Add link for Redlock Algorithm
There isn't enough "meat" for subsections
Line 1:
{{refimprove|date=October 2010}}
 
[[Operating Systemssystem]]s use lock managers to organise and serialise the access to resources. A '''distributed lock manager''' (DLM) runs in every machine in a cluster, with an identical copy of a cluster-wide lock database. In this way a DLM provides [[software application]]s which are [[distributed programming|distributed]] across a cluster on multiple machines with a means to synchronize their accesses to [[shared resource]]s.
 
DLMs have been used as the foundation for several successful [[clustered file system]]s, in which the machines in a [[computer cluster|cluster]] can use each other's storage via a unified [[file system]], with significant advantages for performance and [[high-availability|availability]]. The main performance benefit comes from solving the problem of [[cache coherency|disk cache coherency]] between participating computers. The DLM is used not only for [[file locking]] but also for coordination of all [[disk (storage device)|disk]] access. [[VMScluster]], the first clustering system to come into widespread use, relies on the [[OpenVMS]] DLM in just this way.
Line 83 ⟶ 84:
Both systems use a DLM modeled on the venerable VMS DLM.<ref>[https://lwn.net/Articles/137278/ The OCFS2 filesystem]. Lwn.net (2005-05-24). Retrieved on 2013-09-18.</ref> Oracle's DLM has a simpler API. (the core function, <code>dlmlock()</code>, has eight parameters, whereas the VMS <small><code>SYS$ENQ</code></small> service and Red Hat's <tt>dlm_lock</tt> both have 11.)
 
==Other implementations==
==Google's Chubby lock service==
[[Google]] has developed ''Chubby'', a lock service for loosely coupled distributed systems.<ref name="chubby">[http://research.google.com/archive/chubby.html Google Research Publication: Chubby Distributed Lock Service]. Research.google.com. Retrieved on 2013-09-18.</ref> It is designed for coarse-grained locking and also provides a limited but reliable distributed file system. Key parts of Google's infrastructure, including [[Google File System]], [[Bigtable]], and [[MapReduce]], use Chubby to synchronize accesses to shared resources. Though Chubby was designed as a lock service, it is now heavily used inside Google as a [[name server]], supplanting [[Domain name system|DNS]].<ref name="chubby" />
 
Other DLM implementations include the following:
==ZooKeeper==
 
==* Google's Chubby lock service==
[[Apache ZooKeeper]], which was created at [[Yahoo]], is open-source software and can be used to perform distributed locks<ref name="zookeeper">[http://zookeeper.apache.org/doc/trunk/recipes.html#sc_recipes_Locks ZooKeeper Recipes and Solutions]. Zookeeper.apache.org. Retrieved on 2013-09-18.</ref> as well.
: [[Google]] has developed ''Chubby'', a lock service for loosely coupled distributed systems.<ref name="chubby">[http://research.google.com/archive/chubby.html Google Research Publication: Chubby Distributed Lock Service]. Research.google.com. Retrieved on 2013-09-18.</ref> It is designed for coarse-grained locking and also provides a limited but reliable distributed file system. Key parts of Google's infrastructure, including [[Google File System]], [[Bigtable]], and [[MapReduce]], use Chubby to synchronize accesses to shared resources. Though Chubby was designed as a lock service, it is now heavily used inside Google as a [[name server]], supplanting [[Domain name system|DNS]].<ref name="chubby" />
 
==* ZooKeeper==
==etcd==
: [[Apache ZooKeeper]], which was created at [[Yahoo]], is open-source software and can be used to perform distributed locks<ref name="zookeeper">[http://zookeeper.apache.org/doc/trunk/recipes.html#sc_recipes_Locks ZooKeeper Recipes and Solutions]. Zookeeper.apache.org. Retrieved on 2013-09-18.</ref> as well.
 
==* etcd==
: etcd, is an open-source software, Apache Licensed developed at [[CoreOS]] <ref name="CoreOS">https://coreos.com/</ref> and can be used to perform distributed locks<ref name="etcd">[https://github.com/coreos/etcd/blob/master/Documentation/demo.md#distributed-locks]. Retrieved on 2016-09-20.</ref> as well.
 
==* Redis Redlock Algorithm==algorithm
: [[Redis]] is an open source, BSD licensed, advanced key-value cache and store.<ref name="redis">http://redis.io/ Retrieved on 2015-04-14</ref> Redis can be used to implement the [https://redis.io/topics/distlock Redlock Algorithm] for distributed lock management.<ref name="redlock">http://redis.io/topics/distlock Retrieved on 2015-04-14</ref>
 
==* HashiCorp's Consul==
: Consul,<ref name="consul">[https://consul.io/ Consul Overview]. Retrieved on 2015-02-19.</ref> which was created by [[HashiCorp]], is open-source software and can be used to perform distributed locks as well.
 
==* Taooka==
Consul,<ref name="consul">[https://consul.io/ Consul Overview]. Retrieved on 2015-02-19.</ref> which was created by [[HashiCorp]], is open-source software and can be used to perform distributed locks as well.
: The distributed lock manager Taooka<ref name="taooka">[http://taooka.com/ Taooka Description] Retrieved on 2017-05-04.</ref> uses the "try lock" methods to avoid [[deadlock]]s. It can also specify a TTL for each lock with nanosecond precision.
 
==* SSI Systems==
==Taooka==
: A DLM is also a key component of more ambitious [[Single-system image|single system image]] projects such as [[OpenSSI]].
 
==References==
The distributed lock manager Taooka<ref name="taooka">[http://taooka.com/ Taooka Description] Retrieved on 2017-05-04.</ref> uses the "try lock" methods to avoid [[deadlock]]s. It can also specify a TTL for each lock with nanosecond precision.
 
==SSI Systems==
 
A DLM is also a key component of more ambitious [[Single-system image|single system image]] projects such as [[OpenSSI]].
 
==References==
{{Reflist}}
{{Refbegin}}