# US 10,310,762 B1 · Lease-based leader designation for multiple processes accessing storage resources of a storage system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,310,762 B1
- Document ID: US10310762B1
- Status: Granted
- Kind: B1
- Application number: 15/251,197
- Filed: 2016-08-30
- Granted: 2019-06-04
- Earliest claimed: 2016-08-30
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC Corporation
- Inventors: Nitin Bhatt
- Web page: https://patentgrep.com/patent/US10310762B1

## CPC

- G06F 3/0634: {by changing the state or mode of one or more devices}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F 16/217: {Database tuning (G06F16/2282 takes precedence; database performance monitoring G06F11/3409)}
- G06F 16/22: Indexing; Data structures therefor; Storage structures
- G06F 16/2322: {using timestamps}
- G06F 16/252: {between a Database Management System and a front-end application}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus in one embodiment comprises a storage system that includes storage resources accessible to multiple processes. A controller associated with the storage system is configured to control designation of a given one of the processes as a leader relative to the other ones of the processes so as to provide the given process with prioritized access to perform processing operations involving at least one of the storage resources. In conjunction with designation of the given one of the processes as the leader, the controller is configured to permit the given process to obtain a lease on the leader designation for a period of time that is determined based at least in part on a specified time-to-live value. The lease-based leader designation is illustratively implemented without requiring any interaction between the processes. For example, the processes do not need to reach any consensus relating to the designation of the leader.

## Claims

### Claim 1

An apparatus comprising:
a storage system comprising storage resources that are accessible to multiple processes; and
a controller associated with the storage system and configured to control designation of a given one of the processes as a leader relative to the other ones of the processes so as to provide the given process with prioritized access to perform processing operations involving at least one of the storage resources;
the controller being configured to control designation of the given process as the leader independent of interaction between the processes;
wherein in conjunction with designation of the given one of the processes as the leader, the controller is configured to permit the given process to obtain a lease on the leader designation for a period of time that is determined based at least in part on a specified time-to-live value;
wherein the controller is further configured to receive a lease update request from the given process, to grant the lease update request if the given process is currently designated as the leader, and to set an expiration time for the lease as a function of at least the time-to-live value;
wherein the controller is further configured to receive a request from the given one of the processes to make that process the leader, to determine if another one of the processes is currently designated as the leader, if another one of the processes is currently designated as the leader to return to the given process an identifier of the other one of the processes that is currently designated as the leader, and if another one of the processes is not currently designated as the leader to designate the given process as the leader and to return to the given process its own identifier as an identifier of the process that is currently designated as the leader; and
wherein the controller is implemented by at least one processing device comprising a processor coupled to a memory.

### Claim 2 (depends on 1)

The apparatus of claim 1 wherein at least a subset of the processes are configured to run on respective compute nodes that access the storage system over at least one network.

### Claim 3 (depends on 1)

The apparatus of claim 1 wherein at least a subset of the processes comprise respective services.

### Claim 4 (depends on 3)

The apparatus of claim 3 wherein at least a subset of the processes comprise respective instances of the same service.

### Claim 5 (depends on 1)

The apparatus of claim 1 wherein the storage resources of the storage system comprise at least one database.

### Claim 6 (depends on 5)

The apparatus of claim 5 wherein the controller comprises a database management system having a leader control module configured to designate a given one of the processes as a leader with respect to one or more stored data items of the database.

### Claim 7 (depends on 1)

The apparatus of claim 1 wherein the controller is configured such that only one of the processes is designated as a leader at a given time and wherein the process designated as the leader at the given time has exclusive rights relative to the other processes to perform at least one operation involving one or more of the storage resources.

### Claim 8 (depends on 1)

The apparatus of claim 1 wherein the controller is configured to control designation of a given one of the processes as the leader without requiring any interaction between the processes relating to the designation of the leader and without requiring any consensus among the processes relating to the designation of the leader.

### Claim 9 (depends on 1)

The apparatus of claim 1 wherein the controller is configured to grant the lease update request automatically if the given process is currently designated as the leader, and to set the expiration time for the lease as a function of a current time and the time-to-live value.

### Claim 10 (depends on 9)

The apparatus of claim 9 wherein the given process remains designated as the leader until such time as the lease expires without being further updated.

### Claim 11 (depends on 1)

The apparatus of claim 1 wherein the controller is configured to operate as a server relative to the processes which are configured to operate as respective clients.

### Claim 12 (depends on 1)

The apparatus of claim 1 wherein a maximum amount of time between termination of a given process previously designated as the leader and a point at which another one of the processes can be designated as the leader is given by the time-to-live value.

### Claim 13

A method comprising:
providing multiple processes with access to storage resources;
designating a given one of the processes as a leader relative to the other ones of the processes so as to provide the given process with prioritized access to perform processing operations involving at least one of the storage resources, the designating of the given process as the leader being independent of interaction between the processes;
in conjunction with designating of the given one of the processes as the leader, permitting the given process to obtain a lease on the leader designation for a period of time that is determined based at least in part on a specified time-to-live value;
receiving a lease update request from the given process;
granting the lease update request if the given process is currently designated as the leader; and
setting an expiration time for the lease as a function of at least the time-to-live value;
wherein designating a given one of the processes as a leader relative to the other ones of the processes comprises:
receiving a request from a given one of the processes to make that process the leader;
determining if another one of the processes is currently designated as the leader;
if another one of the processes is currently designated as the leader, returning to the given process an identifier of the other one of the processes that is currently designated as the leader; and
if another one of the processes is not currently designated as the leader, designating the given process as the leader and returning to the given process its own identifier as an identifier of the process that is currently designated as the leader; and
wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

### Claim 14 (depends on 13)

The method of claim 13 wherein permitting the given process to obtain a lease on the leader designation comprises:
granting the lease update request automatically if the given process is currently designated as the leader; and
setting the expiration time for the lease as a function of a current time and the time-to-live value.

### Claim 15

A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device:
to provide multiple processes with access to storage resources;
to designate a given one of the processes as a leader relative to the other ones of the processes so as to provide the given process with prioritized access to perform processing operations involving at least one of the storage resources, wherein the given one of the processes is designated as the leader is independent of interaction between the processes;
in conjunction with designating of the given one of the processes as the leader, to permit the given process to obtain a lease on the leader designation for a period of time that is determined based at least in part on a specified time-to-live value;
to receive a lease update request from the given process;
to grant the lease update request if the given process is currently designated as the leader; and
to set an expiration time for the lease as a function of at least the time-to-live value;
wherein designating a given one of the processes as a leader relative to the other ones of the processes comprises:
receiving a request from a given one of the processes to make that process the leader;
determining if another one of the processes is currently designated as the leader;
if another one of the processes is currently designated as the leader, returning to the given process an identifier of the other one of the processes that is currently designated as the leader; and
if another one of the processes is not currently designated as the leader, designating the given process as the leader and returning to the given process its own identifier as an identifier of the process that is currently designated as the leader.

### Claim 16 (depends on 15)

The computer program product of claim 15 wherein permitting the given process to obtain a lease on the leader designation comprises:
granting the lease update request automatically if the given process is currently designated as the leader; and
setting the expiration time for the lease as a function of a current time and the time-to-live value.

### Claim 17 (depends on 13)

The method of claim 13 wherein at least a subset of the processes are configured to run on respective compute nodes that access the storage system over at least one network.

### Claim 18 (depends on 13)

The method of claim 13 wherein at least a subset of the processes comprise respective services.

### Claim 19 (depends on 13)

The method of claim 13 wherein designating a given one of the processes as a leader relative to the other ones of the processes is performed by a leader control module of a database management system, the leader control module being configured to designate a given one of the processes as a leader with respect to one or more stored data items of a database.

### Claim 20 (depends on 15)

The computer program product of claim 15 wherein designating a given one of the processes as a leader relative to the other ones of the processes is performed by a leader control module of a database management system, the leader control module being configured to designate a given one of the processes as a leader with respect to one or more stored data items of a database.
