# US 12,111,813 B1 · Database management techniques for concurrent write request processing

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

- Number: US 12,111,813 B1
- Document ID: US12111813B1
- Status: Granted
- Kind: B1
- Application number: 18/240,617
- Filed: 2023-08-31
- Granted: 2024-10-08
- Earliest claimed: 2022-09-01
- Assignees: Optum, Inc.
- Applicants: Optum, Inc.
- Inventors: Paul W. Vaughan
- Web page: https://patentgrep.com/patent/US12111813B1

## CPC

- G06F 16/2343: {Locking methods, e.g. distributed locking or locking implementation details}
- G06F 16/2308: {Concurrency control (transaction processing G06F9/466)}
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Various embodiments of the present invention provide methods, apparatuses, systems, computing devices, computing entities, and/or the like for facilitating efficient and effective execution of database management operations. For example, various embodiments of the present invention describe techniques for performing one or more database update operations given a concurrent write request group for a database using P concurrent request processor computing nodes, a match result serialization queue, and a centralized match result serializer computing node.

## Claims

### Claim 1

A computer-implemented method for performing one or more database update operations given a concurrent write request group for a database, the computer-implemented method comprising:
identifying, using one or more processors, a match result serialization queue, wherein: (i) the match result serialization queue describes a serialization ordering of one or more unprocessed match result entries, (ii) each unprocessed match result entry corresponds to an unprocessed concurrent match result determination that has not been processed, and (iii) processing a particular unprocessed concurrent match result determination comprises generating a match result validation determination for the particular unprocessed concurrent match result determination; and
performing, using the one or more processors, the one or more database update operations using the match result serialization queue, comprising, for each selected unprocessed match result entry that is selected from the one or more unprocessed match result entries described by the match result serialization queue in accordance with the serialization ordering:
identifying a recently-processed match result list comprising one or more recently-processed match result entries, wherein: (i) each recently-processed match result entry corresponds to a recently-processed match result determination, and (ii) each recently-processed match result determination has been assigned an affirmative match result validation during a defined recency period before a current processing time,
generating, based at least in part on whether the selected unprocessed match result entry matches at least one of the one or more recently-processed match result entries and using a centralized match result serializer computing node, a serialized match result determination for the selected unprocessed match result entry, wherein the recently-processed match result list is stored on a local storage medium of the centralized match result serializer computing node,
generating, based at least in part on the serialized match result determination for the selected unprocessed match result entry, the match result validation determination for the selected unprocessed match result entry, and
in response to determining that the match result validation determination for the selected unprocessed match result entry is a negative match result validation determination: (i) adding a new concurrent write request for the selected unprocessed match result entry to the concurrent write request group, and (ii) removing the selected unprocessed match result entry from the one or more unprocessed match result entries as described by the match result serialization queue.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein performing the one or more database update operations further comprises:
in response to determining that the match result validation determination for the selected unprocessed match result entry is the affirmative match result validation determination:
adding a new recently-processed match result entry for the selected unprocessed match result entry to the one or more recently-processed match result entries as described by the recently-processed match result list, and
removing the selected unprocessed match result entry from the one or more unprocessed match result entries as described by the match result serialization queue.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein, during each database update iteration, a latest database state is modified in accordance with the one or more recently-processed match result entries as described by the recently-processed match result list.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the defined recency period comprises an estimated database update latency period.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein the defined recency period further comprises an administrator-defined optimal waiting period that is defined based at least in part on a desired database consistency caution level for the database.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein generating the serialized match result determination for the selected unprocessed match result entry comprises:
in response to determining that the proposed database aggregate comprises a particular database record that is assigned to another database aggregate by the one or more recently-processed match result entries as described by the recently-processed match result list, generating the negative match result validation determination for the selected unprocessed match result entry.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein generating the serialized match result determination for the selected unprocessed match result entry comprises:
in response to determining that a database record of the selected unprocessed match result entry matches at least one database record for the one or more recently-processed match result entries as described by the recently-processed match result list, generating the negative match result validation determination for the selected unprocessed match result entry.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein updating the match result serialization queue comprises:
for each concurrent write request in the concurrent write request group:
determining a selected request processor computing node of a plurality of concurrent request processor computing nodes for the concurrent write request,
generating, using the selected request processor computing node, a concurrent match result determination for the concurrent write request, wherein the concurrent match result determination describes a proposed database aggregate for the concurrent write request, and
in response to generating the match result determination, generating an unprocessed match result entry for the concurrent match result determination in a match result serialization queue.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8, wherein:
the concurrent write request group is selected from G concurrent request groups, and
the G concurrent request groups are collectively processed as one write request unit by the plurality of concurrent request processor computing nodes and are separately processed as G request units by G centralized match result serializer computing nodes.

### Claim 10 (depends on 8)

The computer-implemented method of claim 8, wherein the serialization ordering is determined based at least in part on a priority score for each unprocessed match result entry.

### Claim 11 (depends on 10)

The computer-implemented method of claim 10, wherein:
the priority score for a particular unprocessed match result entry is generated based at least in part on a temporal priority score for the particular unprocessed match result entry, and
the temporal priority score for the particular unprocessed match result entry is determined based at least in part on a generation time of the unprocessed match result entry.

### Claim 12 (depends on 10)

The computer-implemented method of claim 10, wherein:
the priority score for a particular unprocessed match result entry is generated based at least in part on a size-based priority score for the particular unprocessed match result entry, and
the size-based priority score for the particular unprocessed match result entry is determined based at least in part on a count of database records associated with the proposed database aggregate.

### Claim 13 (depends on 10)

The computer-implemented method of claim 10, wherein:
the priority score for a particular unprocessed match result entry is generated based at least in part on a group-based priority score for the particular unprocessed match result entry, and
the group-based priority score for the particular unprocessed match result entry is determined based at least in part on a priority score for the concurrent write request group.

### Claim 14 (depends on 8)

The computer-implemented method of claim 8, wherein the plurality of concurrent request processor computing nodes comprise P concurrent request processor computing nodes that correspond to P parallel processors of a multi-processor computing entity.

### Claim 15 (depends on 8)

The computer-implemented method of claim 8, wherein performing the one or more database update operations comprises updating database state data associated with the database.

### Claim 16

A computing system for performing one or more database update operations given a concurrent write request group for a database, the computing system comprising one or more processors and a memory including program code, the memory and the program code configured to, with the one or more processors, cause the computing system to at least:
identify, a match result serialization queue, wherein: (i) the match result serialization queue describes a serialization ordering of one or more unprocessed match result entries, (ii) each unprocessed match result entry corresponds to an unprocessed concurrent match result determination that has not been processed, and (iii) processing a particular unprocessed concurrent match result determination comprises generating a match result validation determination for the particular unprocessed concurrent match result determination; and
perform the one or more database update operations using the match result serialization queue, comprising, for each selected unprocessed match result entry that is selected from the one or more unprocessed match result entries described by the match result serialization queue in accordance with the serialization ordering:
identifying a recently-processed match result list comprising one or more recently-processed match result entries, wherein: (i) each recently-processed match result entry corresponds to a recently-processed match result determination, and (ii) each recently-processed match result determination has been assigned an affirmative match result validation during a defined recency period before a current processing time,
generating, based at least in part on whether the selected unprocessed match result entry matches at least one of the one or more recently-processed match result entries and using a centralized match result serializer computing node, a serialized match result determination for the selected unprocessed match result entry, wherein the recently-processed match result list is stored on a local storage medium of the centralized match result serializer computing node,
generating, based at least in part on the serialized match result determination for the selected unprocessed match result entry, the match result validation determination for the selected unprocessed match result entry, and
in response to determining that the match result validation determination for the selected unprocessed match result entry is a negative match result validation determination: (i) adding a new concurrent write request for the selected unprocessed match result entry to the concurrent write request group, and (ii) removing the selected unprocessed match result entry from the one or more unprocessed match result entries as described by the match result serialization queue.

### Claim 17 (depends on 16)

The computing system of claim 16, wherein performing the one or more database update operations further comprises:
in response to determining that the match result validation determination for the selected unprocessed match result entry is the affirmative match result validation determination:
adding a new recently-processed match result entry for the selected unprocessed match result entry to the one or more recently-processed match result entries as described by the recently-processed match result list, and
removing the selected unprocessed match result entry from the one or more unprocessed match result entries as described by the match result serialization queue.

### Claim 18 (depends on 16)

The computing system of claim 16, wherein, during each database update iteration, a latest database state is modified in accordance with the one or more recently-processed match result entries as described by the recently-processed match result list.

### Claim 19 (depends on 16)

The computing system of claim 16, wherein the defined recency period comprises an estimated database update latency period.

### Claim 20

A computer program product for performing one or more database update operations given a concurrent write request group for a database, the computer program product comprising at least one non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions configured to:
identify, a match result serialization queue, wherein: (i) the match result serialization queue describes a serialization ordering of one or more unprocessed match result entries, (ii) each unprocessed match result entry corresponds to an unprocessed concurrent match result determination that has not been processed, and (iii) processing a particular unprocessed concurrent match result determination comprises generating a match result validation determination for the particular unprocessed concurrent match result determination; and
perform the one or more database update operations using the match result serialization queue, comprising, for each selected unprocessed match result entry that is selected from the one or more unprocessed match result entries described by the match result serialization queue in accordance with the serialization ordering:
identifying a recently-processed match result list comprising one or more recently-processed match result entries, wherein: (i) each recently-processed match result entry corresponds to a recently-processed match result determination, and (ii) each recently-processed match result determination has been assigned an affirmative match result validation during a defined recency period before a current processing time,
generating, based at least in part on whether the selected unprocessed match result entry matches at least one of the one or more recently-processed match result entries and using a centralized match result serializer computing node, a serialized match result determination for the selected unprocessed match result entry, wherein the recently-processed match result list is stored on a local storage medium of the centralized match result serializer computing node,
generating, based at least in part on the serialized match result determination for the selected unprocessed match result entry, the match result validation determination for the selected unprocessed match result entry, and
in response to determining that the match result validation determination for the selected unprocessed match result entry is a negative match result validation determination: (i) adding a new concurrent write request for the selected unprocessed match result entry to the concurrent write request group, and (ii) removing the selected unprocessed match result entry from the one or more unprocessed match result entries as described by the match result serialization queue.
