US 12,135,623 B2
Fault tolerance in scale-out distributed query processing appliance
Krishna Kantikiran Pasupuleti, Belmont, CA (US); Boris Klots, Belmont, CA (US); and Nipun Agarwal, Saratoga, CA (US)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Nov. 13, 2020, as Appl. No. 17/098,274.
Prior Publication US 2022/0156163 A1, May 19, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/2453 (2019.01); G06F 11/20 (2006.01)
CPC G06F 11/2025 (2013.01) [G06F 16/24537 (2019.01); G06F 16/24542 (2019.01); G06F 2201/80 (2013.01)] 14 Claims
OG exemplary drawing
 
1. A method comprising:
receiving, by a database management system (DBMS), a query from a client;
determining a query plan for the query, wherein the query plan comprises a graph of interlinked plan nodes the include a particular plan node and a parent plan node of said particular plan node;
executing the query plan, wherein executing the query plan includes executing the particular plan node, wherein executing the particular plan node comprises:
sending a plurality of query operators to a plurality of computing nodes for the plurality of computing nodes to execute the plurality of query operators on a plurality of data fragments of a database of said DBMS, wherein each computing node of the plurality of computing nodes hosts a respective data fragment of the plurality of data fragments;
detecting an error in execution of a first query operator of the plurality of query operators by a first computing node of the plurality of computing nodes on a first data fragment of the database of the plurality of data fragments of the database; and
in response to detecting the error in executing the first query operator by the first computing node on the first data fragment of the database:
sending the first data fragment of the database to a replacement computing node;
sending the first query operator to said replacement computing node for executing on the first data fragment of the database sent to said replacement computing node;
in response to releasing any of said first results generated by execution of said first query operator by said first computing node to said parent plan node, discarding at least a portion of said first results.