Distributed lock management in a cloud computing environment
First Claim
1. A system, comprising:
- a plurality of computing nodes that are coupled to each other over a network and that collectively provide virtual computing services to one or more clients, each of the computing nodes comprising at least one processor and a memory;
two or more virtual compute instances, each executing on a respective one of two or more of the computing nodes, wherein each of the virtual compute instances is configured to implement an application component of a distributed application on behalf of a client, and wherein the virtual compute instances are configured to communicate with each other over at least a portion of the network; and
a distributed lock manager comprising two or more components, each executing on a respective one of the two or more computing nodes, wherein the distributed lock manager components are configured to share state for one or more locks on respective shared resources, and wherein to share state for the one or more locks, the distributed lock manager components are configured to communicate with each other over a network that is physically or logically distinct from the at least a portion of the network over which the virtual compute instances communicate with each other;
wherein one of the application components is configured to invoke a call to the distributed lock manager component that is executing on the computing node on which the virtual compute instance that implements the application component is executing to initiate performance of a lock management operation for a lock on a shared resource that is accessed by the distributed application.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed lock manager (DLM) may be implemented in a distributed computing system that provides virtualized computing resources and/or virtual computing services to clients. Locks may be created and managed by the DLM in response to requests from clients to do so. The components of the DLM may communicate with each other over a network other than one over which client application components communicate with each other or access the shared resources protected by the locks. For example, DLM components may communicate over a control plane network of a cloud computing environment and application components may communicate over a data plane network of the cloud computing environment. The DLM may expose an API to clients, allowing them to make local calls to a DLM component on the same node to perform various lock management operations. The meanings of the lock values may be established by their use in client applications.
-
Citations
21 Claims
-
1. A system, comprising:
-
a plurality of computing nodes that are coupled to each other over a network and that collectively provide virtual computing services to one or more clients, each of the computing nodes comprising at least one processor and a memory; two or more virtual compute instances, each executing on a respective one of two or more of the computing nodes, wherein each of the virtual compute instances is configured to implement an application component of a distributed application on behalf of a client, and wherein the virtual compute instances are configured to communicate with each other over at least a portion of the network; and a distributed lock manager comprising two or more components, each executing on a respective one of the two or more computing nodes, wherein the distributed lock manager components are configured to share state for one or more locks on respective shared resources, and wherein to share state for the one or more locks, the distributed lock manager components are configured to communicate with each other over a network that is physically or logically distinct from the at least a portion of the network over which the virtual compute instances communicate with each other; wherein one of the application components is configured to invoke a call to the distributed lock manager component that is executing on the computing node on which the virtual compute instance that implements the application component is executing to initiate performance of a lock management operation for a lock on a shared resource that is accessed by the distributed application. - View Dependent Claims (2, 3, 4)
-
-
5. A method, comprising:
performing by one or more computers; receiving, by a component of a distributed lock manager executing on a given one of a plurality of computing nodes, a request to perform a lock management operation for a lock on a shared resource, wherein said receiving comprises receiving the request from a compute instance executing on the given computing node, and wherein the compute instance accesses the shared resource using network resource capacity allocated for the compute instance; and performing the requested lock management operation, wherein said performing comprises the distributed lock manager component communicating with another distributed lock manager component executing on another one of the plurality of computing nodes to share state information for the lock using network resource capacity other than the network resource capacity allocated for the compute instance. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
16. A non-transitory computer-readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to perform:
-
receiving, by a component of a distributed lock manager executing on a given one of a plurality of computing nodes, a request to perform a lock management operation for a lock that is associated with an entity to which shared access is to be controlled, wherein said receiving comprises receiving the request from a resource instance executing on the given computing node, wherein the plurality of computing nodes implement a distributed lock service, wherein the resource instance accesses the entity that is associated with the lock, and wherein the request conforms to an application programming interface that defines one or more lock management operations supported by the distributed lock manager; and performing the requested lock management operation, wherein said performing comprises the distributed lock manager component communicating with another component of the distributed lock manager executing on another one of the plurality of computing nodes to share state information for the lock using network connectivity other than a network connectivity with which the resource instance accesses the entity that is associated with the lock. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification