# US 11,113,261 B2 · Data locking

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

- Number: US 11,113,261 B2
- Document ID: US11113261B2
- Status: Granted
- Kind: B2
- Application number: 15/875,353
- Filed: 2018-01-19
- Published: 2019-07-25
- Granted: 2021-09-07
- Earliest claimed: 2018-01-19
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Richard Pilz; Adrian Mocan; Katja Pfeifer; Tom Spiegler
- Web page: https://patentgrep.com/patent/US11113261B2

## CPC

- G06F 16/2343: {Locking methods, e.g. distributed locking or locking implementation details}
- G06F 16/2264: {Multidimensional index structures}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/2457: with adaptation to user needs
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method to query, update, and reduce a size of locking data for a dataset including a fixed plurality of dimensions each having a fixed plurality of members comprising index tables for the dimensions and a locks table specifying one of a fixed plurality of lock states for the plurality of members, where the fixed plurality of members each have an associated index.

## Claims

### Claim 1

A computer-implemented method to query a dataset, the method comprising:
receiving, by a processor, a query to be executed against a dataset, the dataset comprising database data tables including a fixed plurality of dimensions each having a fixed plurality of members and a locks table specifying one of a fixed plurality of lock states for the plurality of members, the fixed plurality of members each having an associated index value defined by a database index table for each of the plurality of dimensions, and the query specifying a combination of at least two of the members;
determining, by the processor, the associated index value for each of the members specified in the query based on an index table defined for each dimension;
determining, by the processor and based on a combination of values for the indices associated with the members specified in the query, a lock state specified in the locks table for the combination of the at least two members specified in the query;
generating a query result based on the lock state for the combination of the at least two members specified in the query; and
storing a record of the query result in a memory.

### Claim 2 (depends on 1)

The method of claim 1, wherein the locks table specifies one of a fixed plurality of lock states for the plurality of members in specific combinations of the members.

### Claim 3 (depends on 1)

The method of claim 1, wherein the plurality of lock states for the plurality of members is selected from a group including at least an open state, a locked state, and a restricted state, wherein data having locked state cannot be changed, data have an open state can be changed, and data having a restricted state is limited to being changed by a privileged entity.

### Claim 4 (depends on 1)

The method of claim 1, wherein an absence of an entry for a combination of the at least two of the members in the locks table is an indication the lock state for that specific combination is a default value.

### Claim 5 (depends on 4)

The method of claim 4, wherein the default state is selected from a group including at least an open state, a locked state, and a restricted state, wherein data having a locked state cannot be changed, data have an open state can be changed, and data having a restricted state is limited to being changed by a privileged entity.

### Claim 6

A computing system to query a dataset, the system comprising:
a storage device a dataset, the dataset comprising database data tables including a fixed plurality of dimensions each having a fixed plurality of members and a locks table specifying one of a fixed plurality of lock states for the plurality of members, the fixed plurality of members each having an associated index value defined by a database index table for each of the plurality of dimensions;
a memory storing processor-executable program code; and
a processor to execute the processor-executable program code in order to cause the computing system to:
receive a query to be executed against the dataset, the query specifying a combination of at least two of the members;
determine the associated index value for each of the members specified in the query based on an index table defined for each dimension;
determine, based on a combination of values for the indices associated with the members specified in the query, a lock state specified in the locks table for the combination of the at least two members specified in the query;
generate a query result based on the lock state for the combination of the at least two members specified in the query; and
store a record of the query result in a memory.

### Claim 7 (depends on 6)

The system of claim 6, wherein the locks table specifies one of a fixed plurality of lock states for the plurality of members in specific combinations of the members.

### Claim 8 (depends on 6)

The system of claim 6, wherein the plurality of lock states for the plurality of members is selected from a group including at least an open state, a locked state, and a restricted state, wherein data having locked state cannot be changed, data have an open state can be changed, and data having a restricted state is limited to being changed by a privileged entity.

### Claim 9 (depends on 6)

The system of claim 6, wherein an absence of an entry for a combination of the at least two of the members in the locks table is an indication the lock state for that specific combination is a default value.

### Claim 10 (depends on 9)

The system of claim 9, wherein the default state is selected from a group including at least an open state, a locked state, and a restricted state, wherein data having a locked state cannot be changed, data have an open state can be changed, and data having a restricted state is limited to being changed by a privileged entity.

### Claim 11

A non-transitory computer readable medium having executable instructions stored thereon, that when executed by a processor, cause the processor to:
receive a query to be executed against a dataset, the dataset comprising database data tables including a fixed plurality of dimensions each having a fixed plurality of members and a locks table specifying one of a fixed plurality of lock states for the plurality of members, the fixed plurality of members each having an associated index value defined by a database index table for each of the plurality of dimensions, and the query specifying a combination of at least two of the members;
determine the associated index value for each of the members specified in the query based on an index table defined for each dimension;
determine, based on a combination of values for the indices associated with the members specified in the query, a lock state specified in the locks table for the combination of the at least two members specified in the query;
generate a query result based on the lock state for the combination of the at least two members specified in the query; and
store a record of the query result in a memory.

### Claim 12 (depends on 11)

The non-transitory medium of claim 11, wherein the locks table specifies one of a fixed plurality of lock states for the plurality of members in specific combinations of the members.

### Claim 13 (depends on 11)

The non-transitory medium of claim 11, wherein the plurality of lock states for the plurality of members is selected from a group including at least an open state, a locked state, and a restricted state, wherein data having locked state cannot be changed, data have an open state can be changed, and data having a restricted state is limited to being changed by a privileged entity.

### Claim 14 (depends on 11)

The non-transitory medium of claim 11, wherein an absence of an entry for a combination of the at least two of the members in the locks table is an indication the lock state for that specific combination is a default value.

### Claim 15 (depends on 14)

The non-transitory medium of claim 14, wherein the default state is selected from a group including at least an open state, a locked state, and a restricted state, wherein data having a locked state cannot be changed, data have an open state can be changed, and data having a restricted state is limited to being changed by a privileged entity.
