# US 2018/0321998 A1 · Performance efficient time locks on data in a storage controller

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

- Number: US 2018/0321998 A1
- Document ID: US20180321998A1
- Status: Published application
- Kind: A1
- Application number: 15/589,324
- Filed: 2017-05-08
- Published: 2018-11-08
- Earliest claimed: 2017-05-08
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Matthew G. Borlick; Lokesh M. Gupta; Carol S. Mellgren
- Web page: https://patentgrep.com/patent/US20180321998A1

## CPC

- G06F 11/1471: involving logging of persistent data for recovery
- G06F 11/0727: {in a storage system, e.g. in a DASD or network based storage system (drivers for digital recording or reproducing units G06F3/06; circuits for error detection or correction within digital recording or reproducing units G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/0757: {by exceeding a time limit, i.e. time-out, e.g. watchdogs}
- G06F 11/1479: Generic software techniques for error detection or fault masking
- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 12/126: with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F 2201/805: Real-time
- G06F 2201/82: Solving problems relating to consistency
- G06F 2212/312: In storage controller
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Provided are a method, system, and computer program product in which a computational device stores a data structure that includes identifications of a plurality of volumes and identifications of one or more time locks associated with each of the plurality of volumes. The data structure is indexed into, to determine whether an input/output (I/O) operation from a host with respect to a volume is to be permitted.

## Claims

### Claim 1

A method, comprising:
storing, via a computational device, a data structure that includes identifications of a plurality of volumes and identifications of one or more time locks associated with each of the plurality of volumes; and
indexing into the data structure to determine whether an input/output (I/O) operation from a host with respect to a volume is to be permitted.

### Claim 2 (depends on 1)

The method of claim 1, the method further comprising:
in response to determining that an identification of the volume is present in the data structure, determining whether the I/O operation meets a criteria for a time lock; and
in response to determining that the I/O operation meets the criteria for the time lock, transmitting an error condition to the host.

### Claim 3 (depends on 2)

The method of claim 2, wherein the I/O operation meets the criteria for the time lock, in response to determining that the time lock covers a time at which the I/O operation is being performed, in response to determining that the time lock covers an entirety of the volume or part of the volume the I/O operation is intended for, and in response to determining that the time lock covers a type of the I/O operation.

### Claim 4 (depends on 2)

The method of claim 2, the method further comprising:
in response to determining that I/O operation does not meet the criteria for the time lock, performing the I/O operation on the volume.

### Claim 5 (depends on 1)

The method of claim 1, the method further comprising:
in response to determining that an identification of the volume is not present in the data structure, performing the I/O operation on the volume.

### Claim 6 (depends on 1)

The method of claim 1, wherein a time lock indicates at least:
one or more volumes or parts of volumes protected by the time lock;
duration of time for which the time lock is in effect; and
types of I/O operation disallowed by the time lock.

### Claim 7 (depends on 1)

The method of claim 1, wherein the data structure and the one or more time locks are pinned to a cache of the computational device.

### Claim 8 (depends on 7)

The method of claim 7, wherein the one or more time locks are destaged to a storage device to store as a metadata of data that is protected by the one or more time locks, and wherein the metadata is used to recover the one or more time locks and the data structure, in response to a power failure of the computational device.

### Claim 9

A system, comprising:
a memory; and
a processor coupled to the memory, wherein the processor performs operations, the operations comprising:
storing a data structure that includes identifications of a plurality of volumes and identifications of one or more time locks associated with each of the plurality of volumes; and
indexing into the data structure to determine whether an input/output (I/O) operation from a host with respect to a volume is to be permitted.

### Claim 10 (depends on 9)

The system of claim 9, the operations further comprising:
in response to determining that an identification of the volume is present in the data structure, determining whether the I/O operation meets a criteria for a time lock; and
in response to determining that the I/O operation meets the criteria for the time lock, transmitting an error condition to the host.

### Claim 11 (depends on 10)

The system of claim 10, wherein the I/O operation meets the criteria for the time lock, in response to determining that the time lock covers a time at which the I/O operation is being performed, in response to determining that the time lock covers an entirety of the volume or part of the volume the I/O operation is intended for, and in response to determining that the time lock covers a type of the I/O operation.

### Claim 12 (depends on 10)

The system of claim 10, the operations further comprising:
in response to determining that I/O operation does not meet the criteria for the time lock, performing the I/O operation on the volume.

### Claim 13 (depends on 9)

The system of claim 9, the operations further comprising:
in response to determining that an identification of the volume is not present in the data structure, performing the I/O operation on the volume.

### Claim 14 (depends on 9)

The system of claim 9, wherein a time lock indicates at least:
one or more volumes or parts of volumes protected by the time lock;
duration of time for which the time lock is in effect; and
types of I/O operation disallowed by the time lock.

### Claim 15 (depends on 9)

The system of claim 9, wherein the data structure and the one or more time locks are pinned to a cache of the system.

### Claim 16 (depends on 15)

The system of claim 15, wherein the one or more time locks are destaged to a storage device to store as a metadata of data that is protected by the one or more time locks, and wherein the metadata is used to recover the one or more time locks and the data structure, in response to a power failure of the system.

### Claim 17

A computer program product, the computer program product comprising a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code configured to perform operations on a processor of a computational device, the operations comprising:
storing a data structure that includes identifications of a plurality of volumes and identifications of one or more time locks associated with each of the plurality of volumes; and
indexing into the data structure to determine whether an input/output (I/O) operation from a host with respect to a volume is to be permitted.

### Claim 18 (depends on 17)

The computer program product of claim 17, the operations further comprising:
in response to determining that an identification of the volume is present in the data structure, determining whether the I/O operation meets a criteria for a time lock; and
in response to determining that the I/O operation meets the criteria for the time lock, transmitting an error condition to the host.

### Claim 19 (depends on 18)

The computer program product of claim 18, wherein the I/O operation meets the criteria for the time lock, in response to determining that the time lock covers a time at which the I/O operation is being performed, in response to determining that the time lock covers an entirety of the volume or part of the volume the I/O operation is intended for, and in response to determining that the time lock covers a type of the I/O operation.

### Claim 20 (depends on 18)

The computer program product of claim 18, the operations further comprising:
in response to determining that I/O operation does not meet the criteria for the time lock, performing the I/O operation on the volume.

### Claim 21 (depends on 17)

The computer program product of claim 17, the operations further comprising:
in response to determining that an identification of the volume is not present in the data structure, performing the I/O operation on the volume.

### Claim 22 (depends on 17)

The computer program product of claim 17, wherein a time lock indicates at least:
one or more volumes or parts of volumes protected by the time lock;
duration of time for which the time lock is in effect; and
types of I/O operation disallowed by the time lock.

### Claim 23 (depends on 17)

The computer program product of claim 17, wherein the data structure and the one or more time locks are pinned to a cache of the computational device.

### Claim 24

A storage controller coupled to a host, the storage controller operable to perform operations, the operations comprising:
storing a data structure that includes identifications of a plurality of volumes and identifications of one or more time locks associated with each of the plurality of volumes; and
indexing into the data structure to determine whether an input/output (I/O) operation from a host with respect to a volume is to be permitted.

### Claim 25 (depends on 24)

The storage controller of claim 24, the operations further comprising:
in response to determining that an identification of the volume is present in the data structure, determining whether the I/O operation meets a criteria for a time lock; and
in response to determining that the I/O operation meets the criteria for the time lock, transmitting an error condition to the host.
