# US 12,007,964 B2 · Maintaining ongoing transaction information of a database system in an external data store for processing unsaved transactions in response to designated events

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

- Number: US 12,007,964 B2
- Document ID: US12007964B2
- Status: Granted
- Kind: B2
- Application number: 17/462,231
- Filed: 2021-08-31
- Published: 2023-03-02
- Granted: 2024-06-11
- Earliest claimed: 2021-08-31
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Shibi Panikkar; Pratheek Veluswamy
- Web page: https://patentgrep.com/patent/US12007964B2

## CPC

- G06F 16/215: Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
- 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

An apparatus comprises a processing device configured to monitor logs of a database system, to analyze the logs to collect ongoing transaction information for one or more applications utilizing the database system, and to maintain the ongoing transaction information for each of the one or more applications in a corresponding one of a set of one or more queues of a data store external to the database system. The processing device is also configured to detect one or more designated events affecting operation of the database system and, responsive to detecting at least one of the one or more designated events, to process one or more unsaved transactions of the database system utilizing the information stored in the set of one or more queues of the data store external to the database system.

## Claims

### Claim 1

An apparatus comprising:
at least one processing device comprising a processor coupled to a memory;
the at least one processing device being configured to perform steps of:
monitoring logs of a database system;
analyzing the logs to collect ongoing transaction information for one or more applications utilizing the database system;
maintaining the ongoing transaction information for each of the one or more applications in a corresponding one of a set of one or more queues of a data store external to the database system;
detecting one or more designated events affecting operation of the database system; and
responsive to detecting at least one of the one or more designated events, processing one or more unsaved transactions of the database system utilizing the ongoing transaction information stored in the set of one or more queues of the data store external to the database system, wherein processing at least one of the one or more unsaved transactions comprises one of (i) committing, in the database system, unsaved transaction data from at least one of the one or more queues and (ii) rolling back, in the database system, the unsaved transaction data from said at least one of the one or more queues;
wherein maintaining the ongoing transaction information for a given one of the one or more applications in a given corresponding one of the set of one or more queues of the data store external to the database system comprises storing portions of the ongoing transaction information for the given application in the given queue in response to one or more data collection triggering criteria, the one or more data collection triggering criteria being based at least in part on one or more processing patterns derived from analysis of historical transactions of the database system; and
wherein the one or more data collection triggering criteria are dynamically updated over time based at least in part on processing of at least a subset of the one or more unsaved transactions of the database system utilizing the ongoing transaction information stored in the given queue of the data store external to the database system.

### Claim 2 (depends on 1)

The apparatus of claim 1 wherein the at least one processing device is further configured to perform the step of registering the one or more applications.

### Claim 3 (depends on 2)

The apparatus of claim 2 wherein registering the given application comprises specifying an application name of the given application, one or more processes of the given application, one or more database objects of the database system to be traced, and one or more transactions for each of the one or more database objects to be traced.

### Claim 4 (depends on 3)

The apparatus of claim 3 wherein analyzing the logs to collect the ongoing transaction information for the given application comprises streaming, to the given queue, data associated with the specified one or more transactions.

### Claim 5 (depends on 1)

The apparatus of claim 1 wherein analyzing the logs to collect the ongoing transaction information for the given application comprises, for a given transaction, generating a data object for the given transaction specifying an application name of the given application, a given operation, and a current system change number of the database system.

### Claim 6 (depends on 5)

The apparatus of claim 5 wherein the data object further comprises at least one of pre-commit data and post-commit data for the given transaction.

### Claim 7 (depends on 5)

The apparatus of claim 5 wherein the given queue utilizes a First In, First Out (FIFO) data structure, and wherein maintaining the ongoing transaction information for the given application in the given queue comprises storing the data object in the FIFO data structure.

### Claim 8 (depends on 1)

The apparatus of claim 1 wherein each of the set of one or more queues has an associated queue length comprising a number of transactions, and wherein a given queue length of the given queue is defined during registration of the given application.

### Claim 9 (depends on 8)

The apparatus of claim 8 wherein data objects for transactions associated with the given application are stored in the given queue in order based on times of the transactions.

### Claim 10 (depends on 1)

The apparatus of claim 1 wherein detecting said at least one of the one or more designated events comprises detecting at least one of a hardware failure, a crash and a disaster event affecting the database system.

### Claim 11 (depends on 1)

The apparatus of claim 1 wherein processing a given one of the one or more unsaved transactions of the database system utilizing the ongoing transaction information stored in the set of one or more queues of the data store external to the database system comprises determining a type of processing to apply for the given unsaved transaction based at least in part on a comparison of the given unsaved transaction to at least one of the one or more processing patterns derived from the analysis of the historical transactions of the database system.

### Claim 12 (depends on 11)

The apparatus of claim 11 wherein determining the type of processing to apply for the given unsaved transaction comprises determining whether to commit the given unsaved transaction to the database system or roll back the given unsaved transaction.

### Claim 13 (depends on 11)

The apparatus of claim 11 wherein the one or more processing patterns are derived by analyzing the historical transactions of the database system utilizing one or more machine learning algorithms.

### Claim 14 (depends on 1)

The apparatus of claim 1 wherein processing a given one of the one or more unsaved transactions of the database system utilizing the ongoing transaction information stored in the set of one or more queues of the data store external to the database system comprises generating one or more recommendations for a type of processing to apply for the given unsaved transaction, and providing the one or more recommendations to a database administrator of the database system.

### 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 the at least one processing device to perform steps of:
monitoring logs of a database system;
analyzing the logs to collect ongoing transaction information for one or more applications utilizing the database system;
maintaining the ongoing transaction information for each of the one or more applications in a corresponding one of a set of one or more queues of a data store external to the database system;
detecting one or more designated events affecting operation of the database system; and
responsive to detecting at least one of the one or more designated events, processing one or more unsaved transactions of the database system utilizing the ongoing transaction information stored in the set of one or more queues of the data store external to the database system, wherein processing at least one of the one or more unsaved transactions comprises one of (i) committing, in the database system, unsaved transaction data from at least one of the one or more queues and (ii) rolling back, in the database system, the unsaved transaction data from said at least one of the one or more queues;
wherein maintaining the ongoing transaction information for a given one of the one or more applications in a given corresponding one of the set of one or more queues of the data store external to the database system comprises storing portions of the ongoing transaction information for the given application in the given queue in response to one or more data collection triggering criteria, the one or more data collection triggering criteria being based at least in part on one or more processing patterns derived from analysis of historical transactions of the database system; and
wherein the one or more data collection triggering criteria are dynamically updated over time based at least in part on processing of at least a subset of the one or more unsaved transactions of the database system utilizing the ongoing transaction information stored in the given queue of the data store external to the database system.

### Claim 16 (depends on 15)

The computer program product of claim 15 wherein:
analyzing the logs to collect the ongoing transaction information for the given application comprises, for a given transaction, generating a data object for the given transaction specifying an application name of the given application, a given operation, and a current system change number of the database system;
the given queue utilizes a First In, First Out (FIFO) data structure; and
maintaining the ongoing transaction information for the given application in the given queue comprises storing the data object in the FIFO data structure.

### Claim 17 (depends on 15)

The computer program product of claim 15 wherein processing a given one of the one or more unsaved transactions of the database system utilizing the ongoing transaction information stored in the set of one or more queues of the data store external to the database system comprises determining a type of processing to apply for the given unsaved transaction based at least in part on a comparison of the given unsaved transaction to at least one of the one or more processing patterns derived from the analysis of the historical transactions of the database system.

### Claim 18

A method comprising:
monitoring logs of a database system;
analyzing the logs to collect ongoing transaction information for one or more applications utilizing the database system;
maintaining the ongoing transaction information for each of the one or more applications in a corresponding one of a set of one or more queues of a data store external to the database system;
detecting one or more designated events affecting operation of the database system; and
responsive to detecting at least one of the one or more designated events, processing one or more unsaved transactions of the database system utilizing the ongoing transaction information stored in the set of one or more queues of the data store external to the database system, wherein processing at least one of the one or more unsaved transactions comprises one of (i) committing, in the database system, unsaved transaction data from at least one of the one or more queues and (ii) rolling back, in the database system, the unsaved transaction data from said at least one of the one or more queues;
wherein maintaining the ongoing transaction information for a given one of the one or more applications in a given corresponding one of the set of one or more queues of the data store external to the database system comprises storing portions of the ongoing transaction information for the given application in the given queue in response to one or more data collection triggering criteria, the one or more data collection triggering criteria being based at least in part on one or more processing patterns derived from analysis of historical transactions of the database system;
wherein the one or more data collection triggering criteria are dynamically updated over time based at least in part on processing of at least a subset of the one or more unsaved transactions of the database system utilizing the ongoing transaction information stored in the given queue of the data store external to the database system; and
wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

### Claim 19 (depends on 18)

The method of claim 18 wherein:
analyzing the logs to collect the ongoing transaction information for the given application comprises, for a given transaction, generating a data object for the given transaction specifying an application name of the given application, a given operation, and a current system change number of the database system;
the given queue utilizes a First In, First Out (FIFO) data structure; and
maintaining the ongoing transaction information for the given application in the given queue comprises storing the data object in the FIFO data structure.

### Claim 20 (depends on 18)

The method of claim 18 wherein processing a given one of the one or more unsaved transactions of the database system utilizing the ongoing transaction information stored in the set of one or more queues of the data store external to the database system comprises determining a type of processing to apply for the given unsaved transaction based at least in part on a comparison of the given unsaved transaction to at least one of the one or more processing patterns derived from the analysis of the historical transactions of the database system.
