US 11,675,806 B2
Aggregate and transactional networked database query processing
Leonidas Galanis, San Jose, CA (US); Alexander Miller, San Mateo, CA (US); William Waddington, Truckee, CA (US); and Khaled Yagoub, Newark, CA (US)
Assigned to Snowflake Inc., Bozeman, MT (US)
Filed by Snowflake Inc., San Mateo, CA (US)
Filed on Mar. 5, 2021, as Appl. No. 17/249,598.
Claims priority of provisional application 63/125,004, filed on Dec. 14, 2020.
Prior Publication US 2022/0188325 A1, Jun. 16, 2022
Int. Cl. G06F 16/30 (2019.01); G06F 16/25 (2019.01); G06F 16/2452 (2019.01); G06F 16/28 (2019.01); G06F 16/2455 (2019.01); G06F 16/27 (2019.01)
CPC G06F 16/258 (2019.01) [G06F 16/24524 (2019.01); G06F 16/24564 (2019.01); G06F 16/256 (2019.01); G06F 16/27 (2019.01); G06F 16/283 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
receiving, by a first set of decoupled compute instances of a distributed database, a plurality of transactional queries against a transactional processing database stored on a first set of decoupled storage instances, the first set of decoupled compute instances being remote from the first set of decoupled storage instances, each of the plurality of transactional queries comprising data manipulation language statements that change data in the transactional processing database, one or more of the first set of decoupled compute instances locally caching portions of the transactional processing database and bypassing a database compiler of the distributed database to process the plurality of transactional queries using locally cached data;
receiving one or more select queries for processing on an aggregated analytical query database of the distributed database;
replicating, by one or more hardware processors, the changed data from the transactional processing database to an object store database of an aggregated analytical query database managed by a second set of decoupled compute instances of the distributed database, the aggregated analytical query database being stored on a second set of decoupled storage instances, the second set of decoupled compute instances being remote from the second set of decoupled storage instances;
generating, by the database compiler of the distributed database, a query plan for execution of the one or more select queries using the second set of compute instances; and
generating, by the second set of decoupled compute instances, an aggregated analytical query result dataset for the one or more select queries according to the query plan.