Distributed lock manager: Difference between revisions

Content deleted Content added
No edit summary
Restructure (now fairly chronological), add some detail on the Linux clustering file systems.
Line 1:
A '''distributed lock manager''' (DLM) provides distributed applications with a means to synchronize their accesses to shared resources.
 
CombiningDLMs twohave orbeen moreused computersas intothe foundation for several successful clustered file systems, in which the machines in a [[computer cluster|cluster]] in which the machines can use each other's hard disks and other drives via a unified [[file system]], offerswith significant advantages for performance and [[high-availability|availability]]. DLMsThe haveDLM beenis used as the foundation for clustered file systems with considerable success by using cluster wide locks not only for [[file locking]] but also for coordination of all disk access. [[VMScluster]], the first clustering system to come into widespread use, relied on the [[OpenVMS]] DLM in just this way.
==Clusters==
 
Combining two or more computers into a [[computer cluster|cluster]] in which the machines can use each other's hard disks via a unified file system offers significant advantages for performance and [[high-availability|availability]]. DLMs have been used as the foundation for clustered file systems with considerable success by using cluster wide locks not only for [[file locking]] but also for coordination of all disk access. [[VMScluster]], the first clustering system to come into widespread use, relied on the [[OpenVMS]] DLM in just this way.
 
[[Red Hat]] and [[Oracle Corporation|Oracle]] have both developed clustering software for [[Linux]]. Both projects include a DLM modelled on the venerable [[OpenVMS|VMS]] DLM. (''OCFS2'', the Oracle Cluster File System[http://oss.oracle.com/projects/ocfs2/] has been included[http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=29552b1462799afbe02af035b243e97579d63350] in version 2.6.16 of the official [[Linux kernel]]. Red Hat's cluster software[http://sources.redhat.com/cluster/], including their DLM[http://sources.redhat.com/cluster/dlm/] has been included[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1c1afa3c053d4ccdf44e5a4e159005cdfd48bfc6] in version 2.6.19)
 
[[Google]] developed ''Chubby'' lock service for distributed systems. Chubby is used by other Google infrastructures like [[Google File System]], [[BigTable]], and [[MapReduce]] to synchronize accesses to shared resources.[http://labs.google.com/papers/chubby.html]
 
==VMS Implementation==
Line 84 ⟶ 78:
 
The OpenVMS DLM periodically checks for deadlock situations. In the example above, the second lock enqueue request of one of the processes would return with a deadlock status. It would then be up to this process to take action to resolve the deadlock — in this case by releasing the first lock it obtained.
 
==Linux Kernelclustering==
 
Both [[Red Hat]] and [[Oracle Corporation|Oracle]] have developed clustering software for [[Linux]].
 
[[OCFS|OCFS2]], the Oracle Cluster File System[http://oss.oracle.com/projects/ocfs2/] was added[http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=29552b1462799afbe02af035b243e97579d63350] the official [[Linux kernel]] with version 2.6.16, in January 2006.
 
Red Hat's cluster software[http://sources.redhat.com/cluster/], including their DLM[http://sources.redhat.com/cluster/dlm/] was officially added to the Linux kernel[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1c1afa3c053d4ccdf44e5a4e159005cdfd48bfc6] with version 2.6.19, in November 2006.
 
Both systems use a DLM modeled on the venerable [[OpenVMS|VMS]] DLM.[http://lwn.net/Articles/137278/] 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.)
 
==Google's Chubby lock service==
[[Google]] has developed ''Chubby'', lock service for loosely-coupled distributed systems. ChubbyIt is used to synchronize accesses to shared resources by otherkey parts of Google's infrastructuresinfrastructure, likeincluding [[Google File System]], [[BigTable]], and [[MapReduce]] to synchronize accesses to shared resources.[http://labs.google.com/papers/chubby.html]
 
==SSI Systems==
 
A DLM is also a key component of more ambitious [[Single-system image|single system image]] projects such as [[OpenSSI]].
 
==Linux Kernel==
A distributed lock management is added in January 2006 by Redhat people.
 
==References==