# US 2024/0202199 A1 · Techniques for in-memory stitching

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

- Number: US 2024/0202199 A1
- Document ID: US20240202199A1
- Status: Published application
- Kind: A1
- Application number: 18/408,786
- Filed: 2024-01-10
- Published: 2024-06-20
- Earliest claimed: 2019-10-14
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Eric Hsiao; Jeffrey Toillion; Amy Yang; Bingqing Shang; Dennis M. Chin; Robert Carina; Simone Geib; Santosh Kumar
- Web page: https://patentgrep.com/patent/US20240202199A1

## CPC

- G06F 16/24568: {Data stream processing; Continuous queries}
- G06F 9/54: Interprogram communication
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 16/168: {Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs (query results presentation G06F16/156)}
- G06F 16/1734: {Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs}
- G06F 16/2322: {using timestamps}
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F 16/2456: {Join operations}
- G06F 16/2477: {Temporal data queries}
- G06F 16/248: Presentation of query results
- G06F 21/16: Program or content traceability, e.g. by watermarking
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06Q 10/06316: {Sequencing of tasks or work}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Event processing techniques for updating a database in real time based on events in a continuous event stream are disclosed. The techniques can update the database to incorporate information from thousands of received events per second. The events can include metrics measuring milestones for an organizational process defined by a user. Moreover, multiple streams can include metrics from many tenants concurrently. The techniques include receiving a plurality of events corresponding to a time interval and identifying that two events share a value of a key attribute. The techniques then include causing to be generated an in-memory combined database record comprising a combination of first and second attribute information from the two events and the value of the key attribute. In response to a trigger signal, the techniques include transmitting a single message, based at least in part on the combined database record, to update the database.

## Claims

### Claim 1

A method, comprising:
loading, by a computing device, a plurality of events corresponding to a time interval to an in-memory staging area of the computing device;
identifying, by the computing device, that a first event and a second event of the plurality of events in the in-memory staging area correspond to the time interval and share a value of a key attribute;
causing, by the computing device, a combined database record to be generated in a memory of the computing device, the combined database record comprising a combination of at least one of a) attribute information from the first event or the second event, or b) the value of the key attribute; and
transmitting, to a database manager, a single message to update a database, the single message based at least in part on the combined database record.

### Claim 2 (depends on 1)

The method of claim 1, further comprising receiving a trigger signal, and wherein the transmitting is performed at least in response to receiving the trigger signal.

### Claim 3 (depends on 1)

The method of claim 1, wherein the single message comprises one or more of a database update statement, a database create statement, a database delete statement, or a database insert statement.

### Claim 4 (depends on 1)

The method of claim 1, wherein the single message comprises a Java Database Connectivity (JDBC) statement or a Hive statement.

### Claim 5 (depends on 1)

The method of claim 1, wherein the single message to update the database is further based at least in part on a second combined database record, the second combined database record comprising attribute information from other events corresponding to the time interval and sharing a second value of the key attribute.

### Claim 6 (depends on 1)

The method of claim 1, wherein causing the combined database record to be generated comprises applying a User Defined Aggregation Function (UDAF) or a custom function.

### Claim 7 (depends on 1)

The method of claim 1, wherein causing the combined database record to be generated comprises binding first attribute information from the first event and second attribute information together based at least in part on the first event and the second event sharing the value of the key attribute.

### Claim 8 (depends on 1)

The method of claim 1, wherein the plurality of events correspond to metrics of one or more workflows, wherein the one or more workflows are configured via a configuration user interface.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
generating a dashboard user interface comprising graphical controls configured to display statistics based at least in part on the updated database; and
providing the dashboard user interface to a client device for display.

### Claim 10 (depends on 1)

The method of claim 1, wherein the in-memory staging area comprises volatile memory of the computing device.

### Claim 11

A computing system, comprising:
one or more processors; and
a first memory configured to store computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to:
loading, by a computing device, a plurality of events corresponding to a time interval to an in-memory staging area of the computing device;
identifying, by the computing device, that a first event and a second event of the plurality of events in the in-memory staging area correspond to the time interval and share a value of a key attribute;
causing, by the computing device, a combined database record to be generated in a second memory of the computing device, the combined database record comprising a combination of at least one of a) attribute information from the first event or the second event, or b) the value of the key attribute; and
transmitting, to a database manager, a single message to update a database, the single message based at least in part on the combined database record.

### Claim 12 (depends on 10)

The system of claim 10, wherein the second memory of the computing device comprises at least one of a volatile memory or a non-volatile memory, and the in-memory staging area is implemented in the memory of the computing device.

### Claim 13 (depends on 10)

The system of claim 10, wherein the single message to update the database is further based at least in part on a second combined database record, the second combined database record comprising attribute information from other events corresponding to the time interval and sharing a second value of the key attribute.

### Claim 14 (depends on 10)

The system of claim 10, wherein causing the combined database record to be generated comprises applying a User Defined Aggregation Function (UDAF) or a custom function.

### Claim 15 (depends on 10)

The system of claim 10, wherein causing the combined database record to be generated comprises binding first attribute information from the first event and second attribute information together based at least in part on the first event and the second event sharing the value of the key attribute.

### Claim 16

A non-transitory computer-readable medium storing computer-executable instructions that, when executed by one or more processors of a computing device, cause the one or more processors to perform operations comprising:
loading, by the computing device, a plurality of events corresponding to a time interval to an in-memory staging area of the computing device;
identifying, by the computing device, that a first event and a second event of the plurality of events in the in-memory staging area correspond to the time interval and share a value of a key attribute;
causing, by the computing device, a combined database record to be generated in memory of the computing device, the combined database record comprising a combination of at least one of a) attribute information from the first event or the second event, or b) the value of the key attribute; and
transmitting, to a database manager, a single message to update a database, the single message based at least in part on the combined database record.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the single message comprises one or more of a database update statement, a database create statement, a database delete statement, or a database insert statement.

### Claim 18 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the single message comprises a Java Database Connectivity (JDBC) statement or a Hive statement.

### Claim 19 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein causing the combined database record to be generated comprises applying a User Defined Aggregation Function (UDAF) or a custom function.

### Claim 20 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein causing the combined database record to be generated comprises binding first attribute information from the first event and second attribute information together based at least in part on the first event and the second event sharing the value of the key attribute.
