Big-fast data connector between in-memory database system and data warehouse system
First Claim
Patent Images
1. An in-memory database system that supports fast ingest data transfer between the in-memory database system and a data warehouse system, the in-memory database system comprising:
- an in-memory database instance configured to receive data events in real-time or near real-time and update the in-memory database instance with the received data events;
a listener configured to receive notifications of data events from the in-memory database instance to select a queue of a plurality of queues in which the data event will be stored, and to store the data event in the selected queue; and
a plurality of queues, each queue comprising a proxy table and a corresponding write-behind listener, wherein each write-behind listener is configured to determine whether an update condition has been satisfied for a corresponding proxy table of the queue and, in response to determining that an update condition is satisfied, to store the data event in the data warehouse system,and wherein the in-memory database system is configured to receive a query requesting query results that satisfy the query from both historical data in the data warehouse system and data events stored in the in-memory database instance that have not yet been stored in data warehouse system, to generate a time stamp for the query, to wait for the data warehouse system to be updated with the data event stored in the in-memory database instance that occurred before a time represented by the time stamp, and to generate query results that satisfy the query after the data warehouse system is updated with the data event stored in the in-memory database instance that occurred before the time represented by the time stamp for the query.
3 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention include systems and methods for insuring better query consistency between at least two different databases, where one faster database has more up-to-date information than another slower database, and wherein updates are typically applied to the faster database first and then to the slower database. In embodiments, the systems and methods also insure that a query to the slower database is not performed until a set of one or more updates from the faster database have been applied to that slower database.
13 Citations
18 Claims
-
1. An in-memory database system that supports fast ingest data transfer between the in-memory database system and a data warehouse system, the in-memory database system comprising:
-
an in-memory database instance configured to receive data events in real-time or near real-time and update the in-memory database instance with the received data events; a listener configured to receive notifications of data events from the in-memory database instance to select a queue of a plurality of queues in which the data event will be stored, and to store the data event in the selected queue; and a plurality of queues, each queue comprising a proxy table and a corresponding write-behind listener, wherein each write-behind listener is configured to determine whether an update condition has been satisfied for a corresponding proxy table of the queue and, in response to determining that an update condition is satisfied, to store the data event in the data warehouse system, and wherein the in-memory database system is configured to receive a query requesting query results that satisfy the query from both historical data in the data warehouse system and data events stored in the in-memory database instance that have not yet been stored in data warehouse system, to generate a time stamp for the query, to wait for the data warehouse system to be updated with the data event stored in the in-memory database instance that occurred before a time represented by the time stamp, and to generate query results that satisfy the query after the data warehouse system is updated with the data event stored in the in-memory database instance that occurred before the time represented by the time stamp for the query. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-implemented method comprising:
-
receiving, by an in-memory database instance in real-time or near real-time, a plurality of data events; receiving, by a listener, a notification that a data event has been received by the in-memory database instance; selecting a queue of a plurality of queues in which the data event should be stored, each queue comprising a proxy table and a corresponding write-behind listener; storing the data event in the selected queue; receiving, by the in-memory database system, a query requesting query results that satisfy the query from both historical data in a data warehouse system and data events stored in the in-memory database instance that have not yet been stored in data warehouse system; generating a time stamp for the query; waiting for the data warehouse system to be updated with the data event stored in the in-memory database instance that occurred before a time represented by the time stamp; determining, by a write-behind listener of the selected queue, that an update condition has been satisfied for updating the data warehouse system with data events stored in the selected queue; in response, storing the data event in the data warehouse system; and generating query results that satisfy the query after the data warehouse system is updated with the data event stored in the in-memory database instance that occurred before the time represented by the time stamp for the query. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:
-
receiving, by an in-memory database instance in real-time or near real-time, a plurality of data events; receiving, by a listener, a notification that a data event has been received by the in-memory database instance; selecting a queue of a plurality of queues in which the data event should be stored, each queue comprising a proxy table and a corresponding write-behind listener; storing the data event in the selected queue; receiving, by the in-memory database system, a query requesting query results that satisfy the query from both historical data in a data warehouse system and data events stored in the in-memory database instance that have not yet been stored in data warehouse system; generating a time stamp for the query; waiting for the data warehouse system to be updated with the data event stored in the in-memory database instance that occurred before a time represented by the time stamp; determining, by a write-behind listener of the selected queue, that an update condition has been satisfied for updating a data warehouse system with data events stored in the selected queue; in response, storing the data event in the data warehouse system; and generating query results that satisfy the query after the data warehouse system is updated with the data event stored in the in-memory database instance that occurred before the time represented by the time stamp for the query. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification