IP Library Granted Patent US 11,907,228
Granted Patent B2
US 11,907,228 · App. 17/834,827 · Granted Feb 20, 2024

Techniques for in-memory stitching

Inventors: Eric Hsiao (San Mateo, CA); Jeffrey Toillion (Scottsdale, AZ); Amy Yang (Beijing, CN); Bingqing Shang (Beijing, CN); Dennis M. Chin (Stow, OH); Robert Carina (Pottersville, NJ); Simone Geib (Redwood City, CA); Santosh Kumar (Bangalore, IN)
Assignee: Oracle International Corporation
G06F16/24568G06F9/546G06F16/168G06F16/1734G06F16/2322G06F16/2358G06F16/248G06F16/2456G06F21/16G06Q10/06316
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,907,228
App. No.
17/834,827
Granted
Feb 20, 2024
Kind
B2
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 (42)

1. A method, comprising:

loading, by a computing device, a plurality of events corresponding to a time interval to a staging area, the staging area implemented in a random access memory (RAM) of the computing device;

identifying, by the computing device, that a first event and a second event of the plurality of events in the 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 the random access memory (RAM) of the computing device, the combined database record comprising a combination of at least:

attribute information from the first event or second event; or

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.

2. 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.

3. 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.

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

5. 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.

6. 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.

7. 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.

8. 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.

9. 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.

10. A system, comprising:

one or more processors; and

a memory configured to store computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to:

load a plurality of events corresponding to a time interval to a staging area, the staging area implemented in a random access memory (RAM) of a computing device;

identify that a first event and a second event of the plurality of events correspond to the time interval and share a value of a key attribute;

cause to be generated a combined database record in the random access memory (RAM) of the computing device, the combined database record comprising a combination of at least:

attribute information from the first event or the second event; or

the value of the key attribute; and

transmit a single message to update a database, the single message based at least in part on the combined database record.

11. The system of claim 10 , 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.

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

13. 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.

14. 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.

15. 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.

16. A non-transitory computer-readable medium storing computer-executable instructions that, when executed by a processor, cause the processor to perform operations comprising:

loading a plurality of events corresponding to a time interval to a staging area, the staging area implemented in a random access memory (RAM) of a computing device;

identifying that a first event and a second event of the plurality of events correspond to the time interval and share a value of a key attribute;

causing to be generated a combined database record in the random access memory (RAM) of the computing device, the combined database record comprising a combination of at least:

attribute information from the first event or the second event; or

the value of the key attribute; and

transmitting a single message to update a database, the single message based at least in part on the combined database record.

17. 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.

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

19. 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.

20. 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2022
From: HSIAO, ERIC; TOILLION, JEFFREY; YANG, AMY; SHANG, BINGQING; CHIN, DENNIS M.; CARINA, ROBERT; GEIB, SIMONE; KUMAR, SANTOSH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 060173/0038 →
Continuity (4)
Continuation 16896891 · Jun 9, 2020
Provisional Application 62914938 · Oct 14, 2019
Provisional Application 62914939 · Oct 14, 2019
Related Publication 20220300515A1 · Sep 22, 2022
Cited By (2)
US 12,417,228 US 12,436,954