Distributed lock manager: Difference between revisions

Content deleted Content added
Restructure (now fairly chronological), add some detail on the Linux clustering file systems.
Undid revision 154617975 by Chris Chittleborough (talk)
Line 1:
A '''distributed lock manager''' (DLM) provides distributed applications with a means to synchronize their accesses to shared resources.
 
==Clusters==
DLMs have been used as the foundation for several successful clustered file systems, in which the machines in a [[computer cluster|cluster]] can use each other's hard disks and other drives via a unified [[file system]], with significant advantages for performance and [[high-availability|availability]]. The DLM is used 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.
 
DLMsCombining havetwo beenor usedmore ascomputers the foundation for several successful clustered file systems, in which the machines ininto a [[computer cluster|cluster]] in which the machines can use each other's hard disks and other drives via a unified [[file system]], withoffers significant advantages for performance and [[high-availability|availability]]. TheDLMs DLMhave isbeen 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]] has developed ''Chubby'', lock service for loosely-coupled distributed systems. ItChubby is used to synchronize accesses to shared resources by key parts ofother Google's infrastructure,infrastructures includinglike [[Google File System]], [[BigTable]], and [[MapReduce]] to synchronize accesses to shared resources.[http://labs.google.com/papers/chubby.html]
 
==VMS Implementation==
Line 78 ⟶ 84:
 
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 clustering==
 
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. It is used to synchronize accesses to shared resources by key parts of Google's infrastructure, including [[Google File System]], [[BigTable]], and [[MapReduce]].[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 clusteringKernel==
A distributed lock management is added in January 2006 by Redhat people.
 
==References==