US 11,720,581 B2
Query decomposition for scalability of continuous query processing
Unmesh Anil Deshmukh, Nagpur (IN); Hoyong Park, San Jose, CA (US); Sandeep Bishnoi, Pleasanton, CA (US); and Prabhu Thukkaram, San Ramon, CA (US)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Dec. 22, 2021, as Appl. No. 17/559,361.
Application 17/559,361 is a continuation of application No. 16/376,984, filed on Apr. 5, 2019, granted, now 11,243,964.
Application 16/376,984 is a continuation of application No. 15/084,269, filed on Mar. 29, 2016, granted, now 10,303,695, issued on May 28, 2019.
Claims priority of provisional application 62/244,447, filed on Oct. 21, 2015.
Claims priority of provisional application 62/244,434, filed on Oct. 21, 2015.
Prior Publication US 2022/0114172 A1, Apr. 14, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/2458 (2019.01); G06F 16/2452 (2019.01); G06F 16/9535 (2019.01); G06F 16/2455 (2019.01); G06F 16/2453 (2019.01)
CPC G06F 16/2471 (2019.01) [G06F 16/2452 (2019.01); G06F 16/24535 (2019.01); G06F 16/24568 (2019.01); G06F 16/9535 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method, comprising:
receiving, by a computer system, a query to be executed against an event stream, the query comprising a query operator;
determining, by the computer system, a state type of the query operator, wherein the state type is one of a plurality of state types comprising a fully stateful state type, a stateless state type, or a semi-stateful state type, wherein the fully stateful state type comprises a first query with operators in a query plan that maintain state and requires that the event stream be present on each node of the plurality of distributed nodes, wherein the stateless state type comprises a second query with operators in the query plan that do not maintain any state, and wherein the semi-stateful state type comprises a third query with operators in the query plan that maintain state and does not require that the event stream be present on each node of the plurality of distributed nodes; and
in accordance with a determination that the query operator is of the fully stateful state type:
dividing the query, using a query rewrite algorithm, into i) a plurality of partial aggregators for parallel processing on a plurality of distributed nodes and ii) a global aggregator for processing on a single node;
distributing, by the computer system, each partial aggregator of the plurality of partial aggregators of the query to each node, respectively, of the plurality of distributed nodes of a cluster of virtual machines;
enabling, by the computer system, parallel execution of each partial aggregator at each node of the plurality of distributed nodes;
enabling, by the computer system, execution results of each partial aggregator to be joined at a global node; and
enabling, by the computer system, the global aggregator of the query to compute a result at the global node that includes each of the execution results from each node of the plurality of distributed nodes.