Fact-checked by Grok 2 weeks ago

Distributed lock manager

A distributed lock manager (DLM) is a software component in distributed systems that coordinates access to shared resources, such as files, databases, or network services, across multiple nodes by granting and managing locks to ensure and prevent conflicts like or race conditions. DLMs typically operate by maintaining a shared lock database or state replicated across cluster nodes, allowing processes on different machines to request, acquire, convert, or release locks in a coordinated manner. This mechanism is essential for high-availability clusters, enabling applications like clustered file systems (e.g., ) or to function reliably without centralized bottlenecks. In operation, a DLM supports various lock modes—ranging from shared read access (e.g., concurrent reads) to exclusive write access (e.g., single writer)—and handles lock conversions, such as promoting a shared lock to exclusive, while incorporating protocols for detection and recovery. Communication between nodes often relies on protocols like TCP/IP or SCTP, with the system requiring membership awareness, for decisions, and to survive node failures as long as a remains operational. Popular implementations include Redlock, which uses multiple independent masters to acquire locks from a for enhanced safety against single points of failure—though its safety guarantees in asynchronous networks have been debated—and the DynamoDB Lock Client, which leverages conditional writes in tables for atomic lock acquisition with lease-based expiration. DLMs address key challenges in distributed environments, such as network partitions, , and asynchronous failures, by incorporating time-to-live () leases on locks to enable automatic release if a holder crashes, thus avoiding indefinite deadlocks. For instance, in Redlock, locks are valid only if acquired within a specified time window accounting for potential , ensuring liveness while preserving under the assumption that no more than a minority of nodes fail simultaneously. These systems prioritize and , often using fine-grained locking for efficiency, but trade-offs exist, such as increased from distributed coordination or the need for persistent storage to survive restarts. Overall, DLMs form a foundational building block for reliable distributed applications.

Overview

Definition and Purpose

A distributed lock manager (DLM) is a software component that operates across multiple nodes in a , providing locking services to coordinate access to shared resources while maintaining a replicated, cluster-wide lock database on each participating machine. This replication ensures that all nodes have a consistent view of lock states, enabling even in the presence of concurrent requests from different processes. The primary purpose of a DLM is to prevent concurrent access conflicts that could lead to or inconsistencies when multiple nodes attempt to modify shared resources, such as files or blocks, in a clustered . By enforcing synchronized access, it supports through active-active configurations and enhances by distributing lock management responsibilities across nodes, allowing systems to handle increased workloads without centralized bottlenecks. In essence, the DLM acts as a coordination mechanism to maintain in distributed setups where traditional single-node locking is insufficient. DLMs are commonly employed in cluster file systems for resource coordination, such as in the Global File System 2 (), where they synchronize metadata access across sharing block devices to ensure immediate visibility of changes. Similarly, the Oracle Cluster File System 2 (OCFS2) relies on a DLM to manage concurrent read-write operations on shared disks, preventing any single from altering a file block while another accesses it. Beyond file systems, DLMs facilitate in high-availability clusters and in distributed databases, enforcing consistency for globally replicated data. These use cases highlight the DLM's role in enabling reliable, multi-node operations in environments prone to challenges like network latency and failures, which can disrupt communication and require mechanisms such as to isolate faulty .

Historical Development

The origins of distributed lock managers (DLMs) trace back to the mid-, emerging as a critical component for coordinating access in early cluster file systems. Development of the Global File System (GFS), one of the first scalable shared-disk file systems for clusters, began in 1995 at the , sponsored by the University of Minnesota until 2000. Sistina Software, founded in 1997 to commercialize this research, integrated a DLM into GFS to manage locks across nodes, enabling concurrent access to shared storage without a central coordinator. This marked an early milestone in distributed locking for open-source environments, addressing the growing demand for high-availability clustering in enterprise computing during the late . Proprietary systems like (), introduced in the late 1990s for Unix platforms, further advanced distributed locking concepts by providing fault-tolerant resource management across nodes, including lock coordination for scenarios. 's architecture influenced subsequent designs by emphasizing and with solutions, setting a standard for commercial high-availability clusters before the widespread adoption of open-source alternatives. A pivotal shift occurred in December 2003 when acquired Sistina for approximately $31 million in stock, gaining control of GFS and its DLM to bolster enterprise offerings. Following the acquisition's closure in early 2004, open-sourced key components, including the DLM as OpenDLM, under the GPL on June 24, 2004, alongside GFS, LVM2 clustering extensions, and other infrastructure tools. Integration of the DLM into the Linux kernel began with patches proposed in May 2005 against version 2.6.12, enabling native support for distributed locking in filesystems like GFS2 and OCFS2. This upstreaming effort, led by Red Hat engineers such as Patrick Caulfield and David Teigland, standardized DLM for broader Linux adoption, transitioning it from proprietary roots to a core kernel module by the mid-2000s. Red Hat played a central role in this standardization, embedding DLM into Red Hat Enterprise Linux (RHEL) clusters to support enterprise-grade high availability. In the 2010s, DLMs evolved to meet demands for larger-scale deployments, driven by and growth. Advancements in , a resource manager integrated with Corosync for cluster communication, enhanced DLM support for clusters exceeding dozens of nodes, introducing features like improved handling and multi-site for high-availability . These developments, building on open-source foundations, extended DLM's applicability from traditional on-premises clusters to environments, influencing broader distributed systems paradigms. In the , DLMs have further integrated with cloud-native technologies, such as container platforms like and service meshes, providing distributed locking for as of 2025.

Core Concepts

Resources

In distributed lock managers (DLMs), resources refer to shared entities that require coordinated access across nodes to maintain consistency and prevent conflicts. These resources can include physical objects such as shared files, devices, and volumes, as well as logical elements like database records, cache buffers, and abstract identifiers such as IP addresses in clustered environments. For instance, in clusters, the DLM protects files, records within files, and network devices, while Linux-based DLMs like those in safeguard shared storage objects such as filesystems and logical volumes. Resources are represented in the cluster-wide lock database through unique identifiers, typically names or IDs that all nodes recognize and maintain consistently. Each resource maintains an associated lock queue, which tracks pending and granted locks, managed centrally by the DLM across the . In systems like OpenDLM, resources are identified by names up to 31 characters in length, with an optional lock value block (LVB) for storing small amounts of application-specific data, such as sequence numbers or status flags, limited to 16 or 32 bytes. This representation ensures that every node holds an identical view of the lock database, enabling atomic updates and . The lock space for resources employs either a flat or hierarchical namespace to organize identifiers globally. In flat namespaces, resources use simple unique names without structure, suitable for uniform entities, whereas hierarchical namespaces allow tree-like organization, such as nesting records under files or files under volumes. For example, DLMs use tree-structured names with common prefixes (e.g., SYS$ for executive resources), facilitating conversion from local node-specific names to cluster-wide global ones during lock requests. This namespace design supports by distributing resource mastery across nodes based on activity. Lock granularity determines the scope of protection, balancing concurrency with overhead; finer granularity permits more parallel access but increases management complexity. DLMs support levels from coarse (e.g., entire databases or filesystems) to fine (e.g., individual records or byte ranges within files). In Linux DLMs, can extend to specific regions within resources, defined by offsets and lengths, allowing overlapping locks of compatible modes. OpenVMS implementations achieve this through hierarchical naming, enabling locks on sub-resources like pages or buckets within a database while allowing concurrent operations on unrelated parts.

Lock Modes

Distributed lock managers (DLMs) support multiple lock modes to control concurrent access to shared resources, balancing concurrency and exclusivity based on the intended operation. The standard modes include shared locks for read-only access, which permit multiple holders, and exclusive locks for write access, which allow only a single holder. These modes ensure data in distributed environments by defining rules that prevent conflicting operations. In systems like the DLM, six primary lock modes are defined, ranging from no restrictions to full exclusivity. The () mode indicates no interest in the resource and is compatible with all other modes, serving as a . Concurrent read () mode allows read-only access and is compatible with all modes except exclusive (EX). Concurrent write () mode permits both read and write operations but is restricted to compatibility with NL, CR, and other CW modes. Protected read () mode provides read access while blocking writes from others, compatible with NL, CR, and other PR modes. Protected write () mode allows read and write but excludes other writes, compatible only with NL and CR. Exclusive (EX) mode grants full read/write access to a single holder, compatible solely with NL. The interaction between these modes is governed by a compatibility , which determines whether a requested lock can be granted alongside existing locks on the same . The below illustrates this for the DLM, where "Yes" indicates compatibility and "No" indicates blocking:
Requested \ GrantedNLCRCWPRPWEX
NLYesYesYesYesYesYes
CRYesYesYesYesYesNo
CWYesYesYesNoNoNo
PRYesYesNoYesNoNo
PWYesYesNoNoNoNo
EXYesNoNoNoNoNo
This matrix ensures that, for example, multiple PR locks can coexist for concurrent reads without writes, while an EX request blocks all others. Extended modes in some DLMs, such as protected read () and concurrent write (), provide finer-grained control beyond basic shared/exclusive paradigms; PR enforces read exclusivity against writes, while CW allows concurrent unprotected reads and writes among compatible holders. In the Linux DLM, these modes are represented by enumerated values: NL (0), (1), (2), (3), PW (4), and EX (5). Mode conversion enables dynamic adjustment of lock levels, such as upgrading from shared () to exclusive (EX) for writing or downgrading from EX to upon completion. Up-conversions are granted only if compatible with the most restrictive existing lock and if the conversion is empty; otherwise, the request blocks in a first-in-first-out () . Down-conversions occur in-place without queueing, immediately freeing the lock for others. These behaviors prevent race conditions during transitions while maintaining system throughput.

Lock Operations

Obtaining a Lock

In distributed lock managers (DLMs), the process of obtaining a lock generally involves a client application requesting to a , with the DLM coordinating across to ensure . In master-based systems like the DLM, this begins when a client on a node issues a request to its local DLM instance, typically through an call such as dlm_lock(). This request specifies the resource identifier (a unique name up to 64 bytes), the desired lock mode (e.g., shared read or exclusive write), and optional flags that influence behavior, such as whether to attach a lock value block for additional data. The local DLM instance then communicates the request across the cluster, using cluster infrastructure like Corosync (which employs for membership and ) and reliable messaging over / or SCTP for lock coordination to inform relevant nodes. In such systems, the lock master—the designated responsible for the specific —evaluates with existing locks held by other s, based on predefined hierarchies that prevent conflicts (e.g., exclusive s block all others). If the request is compatible, the lock is granted immediately, and the master updates its internal state before notifying the requesting via an asynchronous callback function (), which provides a lock handle (an opaque identifier) for future reference and tracking. In cases of incompatibility, the request is queued: compatible but pending conversions enter a convert for prioritized processing, while fully blocked requests join a wait processed in first-in-first-out () order; the master periodically re-evaluates queues as locks are modified or released, granting via the same notification mechanism. Lock handles, or cookies, serve as unique tokens to identify and manage the lock throughout its lifecycle across s. The granting process relies on protocols that ensure cluster-wide agreement, often involving the lock probing current holders for and then notifying the requester to maintain consistent views. In the DLM, a is dynamically elected for each (initially the requester), and all operations route through it via reliable cluster messaging over /IP or SCTP to handle potential ; this -slave model facilitates global consistency without full overhead. joins or leaves during a request trigger protocols: if the fails, locks are re-mastered to another using membership views, potentially suspending and replaying pending requests to avoid loss, while new joins receive the current lock state via synchronization messages. Alternative DLMs, such as Redlock, use a quorum-based approach where clients attempt to acquire locks on a of independent nodes (e.g., masters) within a time window, incorporating time-to-live () leases to handle failures without a central master. Similarly, the DynamoDB Lock Client employs atomic conditional writes to a distributed table for lock acquisition, with automatic expiration via leases. To manage contention and failures, DLMs incorporate configurable timeouts and retry mechanisms during lock acquisition. Requests can be non-blocking, returning immediately with an (e.g., -EAGAIN) if the lock cannot be granted without waiting, via flags like LKF_NOQUEUE (in DLM), allowing applications to implement custom polling or retries. For blocking requests, a timeout parameter (in centiseconds) can be set to abandon the wait after a specified period, triggering the AST callback with a failure status; this prevents indefinite hangs in high-contention scenarios, with typical defaults balancing responsiveness and overhead in cluster environments.

Releasing a Lock

In distributed lock managers (DLMs), releasing a lock involves the holder notifying the system to free the resource, allowing waiting requests to proceed and updating the shared state. In master-based systems like the DLM, this begins when the lock holder invokes an unlock operation on its local DLM instance, typically using an call such as dlm_unlock or dlm_ls_unlock with the lock handle or as input. This call removes the lock from the grant queue if it is currently held, or returns it to the grant queue from the convert or wait queue if the unlock cancels a pending request. The local DLM then updates the cluster-wide lock resource database to reflect the change in lock state, and if the lock is granted, it notifies any waiting requesters by invoking their asynchronous transfer of control () routines with an appropriate status, such as -EUNLOCK, allowing them to proceed with their lock acquisition attempts. To ensure consistency across the , the unlock propagates the change to all via the DLM's inter- communication , with the master for the resource coordinating the updates to maintain a synchronized view of the lock database. In cases of failure, surviving initiate forced releases of locks held by the failed as part of the process; this involves suspending lock-related activities until the failed is fenced—isolated through mechanisms like power-off or disconnection—to prevent scenarios, after which the locks are evicted and resources are re-mastered on healthy . Cleanup following a successful release includes removing the lock entry from all relevant queues (grant, convert, or block), performing any necessary mode demotions for compatible locks, and updating the resource's overall state in the database; if the released lock is the last one on the resource, the resource itself is destroyed along with any associated lock value block (LVB). For performance optimization, DLMs support optional asynchronous release modes, where the unlock call returns immediately and dispatches the AST notification later via a work queue, reducing blocking in high-throughput environments. If the release fails due to network issues or other errors, the DLM returns an error code (e.g., EFAULT) in the lock status block, prompting the application to retry or handle the failure; in distributed setups, such errors may trigger broader recovery actions, including re-fencing and lock re-acquisition to restore consistency. In lease-based DLMs like Redlock, release involves explicitly deleting the lock key on the acquired nodes, but failure to do so results in automatic expiration via TTL to prevent deadlocks.

Advanced Features

Lock Value Block

In some distributed lock managers, such as the DLM used in clusters, a lock value block (LVB) is an optional fixed-size associated with a lock , enabling the storage and retrieval of application-specific tied to the 's . This feature allows processes across distributed nodes to share concise global data, such as resource version numbers or synchronization flags, without requiring additional mechanisms. The block is allocated upon the creation of the lock and persists as long as at least one lock on that resource is held, ensuring consistent visibility to all contending participants. In usage, the lock value block facilitates efficient coordination for tasks like maintaining cache consistency or tracking resource modifications in clustered environments, where it might store details such as file offsets or update timestamps to avoid redundant . For instance, applications can embed indicating local changes to a , allowing new lock holders to quickly assess and propagate state updates. Operations on the lock value block occur atomically during lock conversions or releases, where it can be read into the requesting process's or written from it, ensuring thread-safe updates across the . Upon releasing a lock in an protected-write , any modifications to the block are propagated automatically to the distributed lock manager's database, making the updated value available to subsequent holders without explicit messaging. This integration streamlines lock obtain and release processes by embedding data handling directly into the locking protocol. Limitations of lock value blocks include inherent size constraints, typically designed to minimize storage and network overhead in distributed systems, which restrict their use to essential, compact data rather than arbitrary payloads. They are not intended as a general-purpose , focusing solely on lock-associated to prevent performance degradation from excessive data transfer. Additionally, abrupt termination of a lock-holding may invalidate the block's contents, necessitating application-level mechanisms.

Deadlock Detection and Resolution

Deadlocks in distributed lock managers arise from cycles in the , where on different each hold locks required by others, creating cross-node dependencies that prevent progress. These distributed cycles differ from local deadlocks by spanning multiple nodes, often involving resources mastered by different lock managers. For instance, a on may hold a shared lock on resource X while waiting for an exclusive lock on resource Y mastered by , while a on holds the exclusive lock on Y and waits for X, forming a two-way . Such deadlocks are exacerbated in high-concurrency environments due to latencies and asynchronous lock requests. Detection algorithms for these deadlocks typically build a global by querying lock statuses across nodes, either periodically or on-demand, to identify through . A seminal distributed approach is the edge-chasing algorithm by Chandy, Misra, and Haas, which propagates probe messages along wait-for edges from blocked processes; if a probe returns to its initiator, a is confirmed without requiring a central coordinator. Timeout-based detection complements this by flagging prolonged waits as potential deadlocks, while some systems employ centralized detectors that aggregate local wait-for graphs from all nodes for analysis. These methods balance detection accuracy with communication overhead, as full graph construction can be costly in large clusters. Upon detection, resolution involves selecting a victim transaction—often based on criteria like least recently used or longest wait time—and aborting its locks to break the cycle, followed by asynchronous callbacks to notify the affected client for retry. In cluster environments, fencing may isolate the victim node's resources to prevent propagation of the conflict. Prevention strategies mitigate deadlocks proactively through lock ordering hierarchies, where resources are assigned unique global identifiers, and locks are acquired in ascending order to eliminate cycles; timeouts on lock requests further break potential loops by forcing releases. Wait-for graphs serve as a key metric for monitoring dependency buildup and preempting cycles before they form. Incompatibilities between lock modes, such as exclusive versus shared, form the basis of wait-for edges in these graphs.

Implementations

Linux Clustering

The Distributed Lock Manager (DLM) in operates as a (fs/dlm/ in the kernel source tree) that enables symmetric distributed locking across nodes, serving as the foundational component for coordinating access to shared resources in high-availability environments. It integrates closely with Corosync, which handles cluster messaging and membership via low-latency multicast protocols like Totem, and , which manages resource allocation, monitoring, and node fencing to ensure cluster integrity during failures. This kernel-level DLM has been a core element of open-source clustering since its upstream integration around 2004, aligning with early efforts in the Open Cluster Framework for standardized cluster services. Configuration of DLM centers on defining lock spaces—logical namespaces that partition locks to prevent interference between applications or subsystems—which were traditionally specified in the /etc/cluster/cluster.conf file in legacy Cluster Manager (cman) setups, including parameters for lock space names, node participation, and tuning options like queue lengths. In modern Pacemaker/Corosync stacks (since RHEL 7/SLE 12), lock spaces are configured dynamically using tools like pcs or crm, such as creating a cloned DLM resource with pcs resource create dlm ocf:pacemaker:controld to ensure it runs on all nodes. These configurations support clusters of up to 16 nodes in RHEL and up to 32 nodes in SLE, leveraging Corosync's multicast for sub-millisecond message delivery in local networks, though scalability is constrained by kernel limits on lock tables and communication overhead. DLM finds primary application in shared-disk file systems like (Global File System 2) and (Oracle Cluster File System 2), where it manages glocks (GFS locks) or cluster locks to allow concurrent read/write access across nodes while enforcing consistency on block devices. For instance, in a setup, DLM coordinates and journal locks to enable active-active storage sharing without single-node bottlenecks. It also supports high-availability configurations for databases, such as Pacemaker-orchestrated clusters using shared storage for data directories, ensuring failover by releasing locks from failed nodes and recovering via . Key performance enhancements in DLM include asynchronous lock operations via its user-space (e.g., dlm_lock() with callbacks), which allow non-blocking requests to minimize contention in I/O-intensive workloads, and built-in journaling support for lock state recovery, integrated with journals like those in to replay operations after node crashes in under a second for typical configurations. As of 6.x series (released starting 2022), DLM received stability fixes, such as improved mid-communication handling in multi-node setups and better address management to prevent kernel panics during reconfiguration.

Other Systems

Veritas Cluster Server (VCS), originally developed by in the 1990s and now maintained by , incorporates a distributed lock manager known as the Group Lock Manager (GLM) to ensure consistent access to shared s across cluster nodes. The GLM provides metadata and cache coherency by coordinating locks in a clustered environment, particularly for the Cluster File System (CFS), which supports active-active configurations over shared like . This mechanism has evolved to handle multi-node concurrency while maintaining single-host file system semantics. IBM's Multi-Processing (HACMP), now evolved into PowerHA SystemMirror for AIX, employs Reliable Scalable Cluster Technology (RSCT) group services for concurrent locking to manage access to shared storage in enhanced concurrent volume groups, using reserved regions on physical disks for heartbeats to prevent scenarios during and resource takeover. This approach supports multi-node access to resources like databases, ensuring without full exclusive locks in certain configurations. In open-source and cloud environments, Apache ZooKeeper's framework offers distributed locking recipes, such as InterProcessMutex, which implement globally synchronous locks across nodes without a full-fledged DLM but serving similar coordination purposes. These locks use ZooKeeper's hierarchical znodes and watches to enforce , making them suitable for and resource synchronization in distributed applications. Similarly, the Redlock algorithm approximates a distributed lock manager by acquiring locks across multiple independent masters, requiring success on a (e.g., 3 out of 5) to ensure against single-node failures. Redlock employs time-bound leases to prevent indefinite holds, addressing challenges in asynchronous networks. The DynamoDB Lock Client is a for acquiring distributed locks using tables. It leverages conditional writes for atomic lock acquisition and supports lease-based expiration to automatically release locks if a holder fails, providing and liveness in cloud environments without requiring additional infrastructure. Distributed lock systems vary between centralized models, where a coordinator like manages all lock states, and decentralized ones, which distribute responsibility across nodes for better . Windows Server Failover Clustering (WSFC) exemplifies a hybrid approach with Cluster Shared Volumes (), enabling simultaneous read-write access from multiple nodes via an integrated lock service that coordinates I/O through a redirector and global update handle. This service uses SCSI-3 persistent reservations and direct storage access to minimize latency while resolving conflicts. Compared to performance-oriented systems, ZooKeeper's locking prioritizes through its ZAB protocol, scaling to hundreds of nodes but incurring overhead that can limit throughput in high-contention scenarios. In contrast, approximations like Redlock focus on availability and low-latency acquisition in eventually consistent environments. Recent developments include etcd-based locking in , introduced around 2015, which leverages leases and mutexes for coordinating scheduling and across clusters, providing lightweight distributed without external dependencies. Etcd's locks use revision numbers and TTLs to ensure atomicity, supporting ' scalability to thousands of nodes.

References

  1. [1]
    Chapter 5. Lock Management | High Availability Add-On Overview
    In a Red Hat Enterprise Linux cluster, DLM (Distributed Lock Manager) is the lock manager. A lock manager is a traffic cop who controls access to resources ...
  2. [2]
    Distributed Locks with Redis | Docs
    This page describes a more canonical algorithm to implement distributed locks with Redis. We propose an algorithm, called Redlock, which implements a DLM.
  3. [3]
    Building Distributed Locks with the DynamoDB Lock Client
    Aug 15, 2017 · The DynamoDB Lock Client is a Java Library widely used inside Amazon, which enables you to solve distributed computing problems like leader election and ...
  4. [4]
    Distributed lock overview - Dapr Docs
    Distributed locks provide mutually exclusive access to resources, usually for state updates, and only one instance can hold a lock at a time, scoped to a Dapr ...<|control11|><|separator|>
  5. [5]
    Distributed Lock Manager (DLM) | SLE HA 12 SP5
    The Distributed Lock Manager (DLM) in the kernel is the base component used by OCFS2, GFS2, Cluster MD, and cLVM to provide active-active storage at each ...
  6. [6]
    None
    ### Summary of Distributed Locking (DLM) from arXiv:2504.03073
  7. [7]
    Global File System — The Linux Kernel documentation
    GFS reads and writes to the block device like a local file system, but also uses a lock module to allow the computers coordinate their I/O so file system ...
  8. [8]
    Overview of OCFS2 - IBM
    OCFS2 uses a distributed lock manager to organize access and a network interconnect to share the information between clustered servers when a file is changed.Missing: GFS | Show results with:GFS
  9. [9]
    LWN.net Weekly Edition for July 1, 2004
    Jun 30, 2004 · Then Matthew O'Keefe, a professor at the university, founded Sistina around GFS. Sistina stopped making new versions of GFS available under the ...
  10. [10]
    Sistina Releases Global File System 4.0 For Linux - HPCwire
    Jan 26, 2001 · Minneapolis, MN – – Sistina Software Inc. on January 22nd, announced the release of the Global File System (GFS TM) version 4.0. GFS 4.0 is the ...
  11. [11]
    [PDF] The GFS2 Filesystem
    Jun 30, 2007 · This was the default locking manager for GFS until the DLM. (see [1]) was written by Patrick Caulfield and Dave Tei- gland. Sistina Software Inc ...Missing: origins | Show results with:origins
  12. [12]
    Veritas Software Corporation | Encyclopedia.com
    Later in the first half of 2000 Veritas released improved versions of its clustering software. The Cluster Server for Windows NT allowed IT managers to link ...
  13. [13]
    [PDF] Veritas Cluster Server Release Notes
    The product described in this document is distributed under licenses restricting its use, copying, distribution, and decompilation/reverse engineering. No part ...Missing: history | Show results with:history
  14. [14]
    Red Hat Continues Scale Out of Open Source Architecture with ...
    Dec 18, 2003 · Sistina GFS for Oracle9i RAC, a solution designed to specifically reduce the complexity of implementing and maintaining an Oracle9i RAC system.Missing: DLM | Show results with:DLM
  15. [15]
    The Global File System goes full circle - LWN.net
    Jun 30, 2004 · In 2003, Red Hat announced that it was acquiring Sistina, and that it would work to release Sistina's current technologies as open source in ...Missing: acquisition | Show results with:acquisition
  16. [16]
    dlm: overview - LWN.net
    May 16, 2005 · These are the distributed lock manager (dlm) patches against 2.6.12-rc4 that we'd like to see added to the kernel. We've made changes based ...
  17. [17]
    High-Availability Clustering in the Open Source Ecosystem - Alteeve
    May 28, 2016 · In 2003, Red Hat purchased Sistina Software. The Birth of Red Hat Cluster Services. In 2002, when MCL closed, Red Hat took their “Kimberlite ...<|separator|>
  18. [18]
    Ahead of the Pack: the Pacemaker High-Availability Stack
    Jun 18, 2012 · The default cluster communications layer in the Linux HA stack is Corosync, which evolved out of the earlier, now all but defunct, OpenAIS ...
  19. [19]
    1. Introduction — Pacemaker Administration - ClusterLabs
    Pacemaker is a high-availability cluster resource manager that preserves integrity and minimizes downtime of desired services.
  20. [20]
    Distributed Lock Manager - VSI OpenVMS Wiki
    Nov 16, 2019 · The Distributed Lock Manager was designed by Steve Beckhardt and released in 1984 with VAX/VMS V4.0. Contents. 1 Resources; 2 Lock Modes ...Missing: origins Sistina GFS
  21. [21]
    [PDF] OpenVMS Locking Concepts - Oracle
    Jun 20, 2005 · – Distributed Lock Manager. – Used by VMS, XQP, RMS, Rdb, etc. Page 4. 4. Distributed Lock Manager. • Cooperating processes use lock manager to.
  22. [22]
    [PDF] Programming Locking Applications - OpenDLM
    The Distributed Lock Manager provides two distinct locking models: the DLM locking model and the UNIX ®. System V locking model. The two locking models exist in ...
  23. [23]
    [PDF] Programming Locking Applications - Red Hat People
    An Overview of the Distributed Lock Manager. The Distributed Lock Manager (DLM) provides advisory locking services that allow concurrent applications running ...Missing: origins Sistina
  24. [24]
  25. [25]
    dlm_lock(3): acquire/convert DLM lock - Linux man page - Die.net
    LKF_ALTCW If the requested mode can't be granted (generally PR), try to grant in CW and return DLM_SBF_ALTMODE. LKF_TIMEOUT The lock will time out per the ...
  26. [26]
    1.3. Cluster Infrastructure | Red Hat Enterprise Linux | 5
    As implied in its name, DLM is a distributed lock manager and runs in each cluster node; lock management is distributed across all nodes in the cluster (refer ...
  27. [27]
    18.2 Distributed Lock Manager (DLM) - Flylib.com
    The TruCluster Server Distributed Lock Manager (DLM) component provides a form of distributed (cluster-wide) locking that goes well beyond traditional locks.<|control11|><|separator|>
  28. [28]
    Distributed deadlock detection | ACM Transactions on Computer ...
    CHANDY, K.M., AND MISRA, J. A distributed algorithm for detecting resource deadlocks in distributed systems. In Proc. A CM SIGA CT-SIGOPS Syrup.
  29. [29]
    A survey of distributed deadlock detection algorithms
    This paper will concentrate on distributed deadlock detection algorithms. Only detection of resource deadlocks will be reviewed here, though other types of ...Missing: manager | Show results with:manager
  30. [30]
    DLM Project Page - Sourceware
    This is a distributed lock manager (dlm) that we'd like to see added to the kernel. The dlm programming api is very similar to that found on other operating ...
  31. [31]
    [PDF] Using Pacemaker to Create Highly Available Linux Solutions on IBM ...
    Dec 20, 2023 · This document describes using Pacemaker to create highly available Linux solutions on IBM Power, applying to Red Hat Enterprise Linux 9.0 and 8 ...Missing: advancements | Show results with:advancements
  32. [32]
    Distributed Lock Manager (DLM) | SLE HA 15 SP7
    The Distributed Lock Manager (DLM) in the kernel is the base component used by OCFS2, GFS2, Cluster MD, and Cluster LVM (lvmlockd) to provide active-active ...
  33. [33]
    Support Policies for RHEL Resilient Storage - dlm General Policies
    Apr 16, 2025 · This guide lays out Red Hat's policies applicable to the use of the Distributed Lock Manager - dlm - in RHEL Resilient Storage deployments.
  34. [34]
    Global File System 2 | Red Hat Enterprise Linux | 7
    The glock subsystem provides a cache management function which is implemented using the distributed lock manager (DLM) as the underlying communication layer.<|control11|><|separator|>
  35. [35]
    [PDF] Managing the Oracle Cluster File System Version 2
    Jul 1, 2025 · OCFS2 (Oracle Cluster File System Version 2) is a general-purpose shared-disk file system intended for use with clusters. OCFS2 offers high ...
  36. [36]
    MySQL High Availability Clustering Using DRBD and Pacemaker on ...
    This guide describes an approach for designing and implementing High Availability (HA) MySQL cluster using DRBD, Pacemaker, and Corosync on RHEL 8 or CentOS 8
  37. [37]
    Bug#1063338: [regression 6.1.76] dlm: cannot start dlm midcomms ...
    Feb 8, 2024 · We tried to apply commit c51c9cd8 (fs: dlm: don't put dlm_local_addrs on heap) to the debian kernel 6.1.76 and came up with the attached patch.
  38. [38]
    [PDF] Veritas Storage Foundation™ for Cluster File System Administrator's ...
    CFS uses a distributed locking mechanism called Global Lock Manager. (GLM) to ensure all nodes have a consistent view of the file system. GLM provides.
  39. [39]
    About single-host file system semantics using Group Lock Manager
    Apr 2, 2024 · SFCFSHA uses the Veritas Group Lock Manager (GLM) to reproduce UNIX single-host file system semantics in clusters. This is most important in ...
  40. [40]
    [PDF] IBM Eserver pSeries HACMP V5.x Certification Study Guide Update
    uses a small region on the physical disk for the concurrent locking mechanism. Note: When using this feature, HACMP assumes that the CUoD license agreement ...
  41. [41]
    [PDF] Guide to IBM PowerHA SystemMirror for AIX Version 7.1.3
    This guide outlines the latest PowerHA enhancements, describes clustering with unicast communications, and includes migration scenarios.
  42. [42]
    Recipe: Shared Lock - Apache Curator
    Jul 23, 2025 · Fully distributed locks that are globally synchronous, meaning at any snapshot in time no two clients think they hold the same lock.
  43. [43]
    Recipes | Apache Curator
    Jul 23, 2025 · Shared Reentrant Lock - Fully distributed locks that are globally synchronous, meaning at any snapshot in time no two clients think they hold ...Locks​ · Caches​ · Nodes/watches​
  44. [44]
    Cluster Shared Volumes overview | Microsoft Learn
    Jul 9, 2025 · A Cluster Shared Volume (CSV) enables multiple nodes in a Windows Server failover cluster or Azure Local to simultaneously have read-write access to the same ...
  45. [45]
    etcd versus other key-value stores
    Jan 12, 2025 · With this mechanism, etcd provides distributed locking for clients. It means that a client knows that it is acquiring a lock of a key when its ...Use cases · Comparison chart · ZooKeeper · Consul
  46. [46]
    How to create locks - etcd
    Oct 25, 2021 · How to create locks. Guide to creating distributed locks in etcd. lock for distributed lock: 08_etcdctl_lock_2016050501.
  47. [47]
    Operating etcd clusters for Kubernetes
    Operating etcd clusters for Kubernetes. etcd is a consistent and highly-available key value store used as Kubernetes' backing store for all cluster data.