IP Library › Granted Patent US 12,547,468
Granted Patent B2
US 12,547,468 · App. 17/957,646 · Granted Feb 10, 2026

Systems and methods for performing data processing operations using variable level parallelism with pruned propagation

Inventor: Garth Allen Dickie (Framingham, MA)
Assignee: Ab Initio Technology LLC
G06F9/5066G06F9/5038
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 12,547,468
App. No.
17/957,646
Granted
Feb 10, 2026
Kind
B2
Abstract

Techniques for determining processing layouts to nodes of a dataflow graph. The techniques include: obtaining information specifying a dataflow graph, the dataflow graph comprising a plurality of nodes and a plurality of edges connecting the plurality nodes, the plurality of edges representing flows of data among nodes in the plurality of nodes, the plurality of nodes comprising: a first set of one or more nodes; and a second set of one or more nodes disjoint from the first set of nodes; obtaining a first set of one or more processing layouts for the first set of nodes; and determining a processing layout for each node in the second set of nodes based on the first set of processing layouts and one or more layout determination rules, the one or more layout determination rules including at least one rule for selecting among processing layouts having different degrees of parallelism, and information indicating that data generated by at least one node in the first and/or third set of nodes is not used by any nodes in the dataflow graph downstream from the at least one node.

Claims (87)

1 . A method, comprising:

using at least one computer hardware processor to perform:

obtaining information specifying a dataflow graph, the dataflow graph comprising nodes and edges connecting the nodes, the edges representing flows of data among the nodes, the nodes comprising:

a first set of one or more nodes, each node in the first set of one or more nodes representing a respective input dataset in a set of one or more input datasets;

a second set of one or more nodes, each node in the second set of one or more nodes representing a respective output dataset in a set of one or more output datasets; and

a third set of nodes representing data processing operations, each node in the third set of nodes representing at least one of the data processing operations;

obtaining a first set of one or more processing layouts for the set of one or more input datasets and a second set of one or more processing layouts for the set of one or more output datasets, the first set of one or more processing layouts including processing layouts having different degrees of parallelism and/or the second set of one or more processing layouts having different degrees of parallelism, wherein each processing layout in the first and second sets of one or more processing layouts specifies, for a particular node in the first or second set of one or more nodes, a respective degree of parallelism to be used for performing an operation represented by the particular node;

determining processing layouts for nodes in the third set of nodes using: (a) the first set of one or more processing layouts, (b) the second set of one or more processing layouts, (c) one or more layout determination rules including at least one rule for selecting among processing layouts having different degrees of parallelism, and (d) information indicating that data generated by at least one node in the first set of one or more nodes and/or third set of nodes is not used by any nodes in the dataflow graph downstream from the at least one node, wherein determining the processing layouts for the nodes in the third set of nodes comprises:

identifying the at least one node whose data is not used by any nodes in the dataflow graph downstream from the at least one node during a forward pass starting from nodes in the first set of one or more nodes or a backward pass starting from nodes in the second set of one or more nodes; and

after determining the processing layout for each node in the dataflow graph, executing the dataflow graph in accordance with processing layouts determined for each node in the dataflow graph, the executing comprising:

reading input data from the set of the one or more input datasets represented by the first set of one or more nodes in accordance with the first set of one or more processing layouts;

processing the input data using the data processing operations represented by the third set of nodes in accordance with the processing layouts determined for the nodes in the third set of nodes; and

writing output data obtained as a result of performing the data processing operations to the set of one or more output datasets represented by the second set of one or more nodes in accordance with the second set of one or more processing layouts.

2 . The method of claim 1 , wherein determining the processing layouts is performed using two layout propagation passes by:

in the forward pass starting from nodes in the first set of one or more nodes and in accordance with structure of the dataflow graph, determining one or more initial processing layouts for one or more nodes in the third set of nodes by using the first set of one or more processing layouts, the one or more layout determination rules, and the information indicating that the data generated by the at least one node is not used by any nodes in the dataflow graph downstream from the at least one node; and

in the backward pass, starting from nodes in the second set of one or more nodes and in accordance with the structure of the dataflow graph, determining the processing layouts for one or more nodes in the third set of nodes, by using the second set of one or more processing layouts, the one or more initial processing layouts, and the one or more layout determination rules.

3 . The method of claim 2 , wherein a processing layout associated with the at least one node whose data is not used by any nodes in the dataflow graph downstream from the at least one node is not propagated, during the forward pass, to one or more nodes downstream from the at least one node in the dataflow graph.

4 . The method of claim 3 , wherein a processing layout associated with the at least one node whose data is not used by any nodes in the dataflow graph downstream from the at least one node is not propagated, during the backward pass, to one or more nodes upstream from the at least one node in the dataflow graph.

5 . The method of claim 1 , further comprising:

determining, based on processing layouts for nodes in the first set of one or more nodes, the second set of one or more nodes, and the third set of nodes, whether the dataflow graph is to be processed as a micrograph,

wherein determining whether the dataflow graph is to executed as a micrograph comprises: determining to execute the dataflow graph as a micrograph when the processing layouts for the first set of one or more nodes, the second set of one or more nodes, and the third set of nodes have a same degree of parallelism.

6 . The method of claim 2 , wherein the third set of nodes comprises a first node, wherein the edges comprise a first edge between the first node and a second node preceding the first node in the dataflow graph, and wherein determining the one or more initial processing layouts for the one or more nodes in the third set of nodes during the forward pass comprises:

determining a first initial processing layout for the first node based on a second initial processing layout determined for the second node.

7 . The method of claim 6 , wherein the edges comprise a second edge between the first node and a third node preceding the first node in the dataflow graph, wherein a third initial processing layout is associated with the third node, and wherein determining the first initial processing layout for the first node comprises:

selecting, as the first initial processing layout, either the second initial processing layout determined for the second node or a third initial processing layout determined for the third node.

8 . The method of claim 7 , wherein the second initial processing layout specifies a first degree of parallelism, wherein the third initial processing layout specifies a second degree of parallelism different from the first degree of parallelism, and wherein the selecting comprises:

selecting the second initial processing layout when the first degree of parallelism is greater than the second degree of parallelism; and

selecting the third initial processing layout when the first degree of parallelism is less than the second degree of parallelism.

9 . The method of claim 7 , wherein the second initial processing layout and the third initial processing layout each specifies a parallel processing layout with a same or different degree of parallelism, wherein the first edge represents a data flow for a first number of data records, wherein the second edge represents a data flow for a second number of data records, and wherein the selecting comprises:

selecting the second initial processing layout when the first number of data records is greater than the second number of data records; and

selecting the third initial processing layout when the first number of data records is less than the second number of data records.

10 . The method of claim 1 ,

wherein, during the determining, a first processing layout is determined for a first node in third set of nodes, the first processing layout specifying a first degree of parallelism,

wherein a second processing layout for a second node immediately preceding the first node in the dataflow graph specifies a second degree of parallelism different from the first degree of parallelism, and

wherein the method further comprises configuring at least one node of the dataflow graph to perform at least one repartitioning operation.

11 . The method of claim 1 ,

wherein, during the determining, a first processing layout is determined for a first node in third set of nodes, the first processing layout specifying a first degree of parallelism,

wherein a second processing layout for a second node immediately preceding the first node in the dataflow graph specifies a second degree of parallelism different from the first degree of parallelism, and

wherein the method further comprises adding, to the dataflow graph, a new node between the first node and the second node, the new node representing at least one repartitioning operation.

12 . The method of claim 1 , wherein a processing layout for a node representing an operation specifies a degree of parallelism to be used for performing the operation.

13 . The method of claim 1 , wherein the determining of the processing layouts for nodes in the third set of nodes comprises:

determining an initial processing layout for each particular node of at least some of the third set of nodes in the forward pass performed starting from nodes in the first set of one or more nodes in accordance with structure of the dataflow graph and using the first set of one or more processing layouts and the one or more layout determination rules, such that, for each particular node, a processing layout of a node preceding the particular node in the dataflow graph is selected during the forward pass as the initial processing layout for the particular node, wherein in case of multiple nodes preceding the particular node in the dataflow graph:

a parallel processing layout of one of the multiple preceding nodes is selected during the forward pass as the initial processing layout of the particular node if the processing layouts of other nodes of the multiple preceding nodes are serial, or

the processing layout of the one of the multiple preceding nodes being used to process a largest number of records is selected during the forward pass as the initial processing layout of the particular node,

as indicated by the at least one rule.

14 . The method of claim 13 , wherein the processing layout of the one of the multiple preceding nodes being used to process the largest number of records is selected during the forward pass as the initial processing layout, if the multiple nodes preceding the particular node in the dataflow graph only have serial processing layouts or only have multiple parallel processing layouts with the same or different degree of parallelism among each other.

15 . The method of claim 13 , wherein a processing layout associated with the at least one node is disregarded when selecting the initial processing layout of the particular node during the forward pass.

16 . The method of claim 13 , wherein the determining of the processing layouts for nodes in the third set of nodes further comprises:

determining a final processing layout for each particular node of at least some of the third set of nodes in the backward pass performed starting from nodes in the second set of one or more nodes in accordance with the structure of the dataflow graph, the initial processing layouts, and the one or more layout determination rules, such that, for each particular node, wherein:

the parallel processing layout according to one of the initial processing layout of the particular node or of the processing layout of the node succeeding the particular node is selected during the backward pass as the final processing layout of the particular node if the other one of the processing layouts of the initial processing layout of the particular node and the processing layout of the node succeeding the particular node is serial, or

the processing layout among the initial processing layout of the particular node and the processing layout of the node succeeding the particular node that is used to process the largest number of records is selected during the backward pass as the final processing layout of the particular node,

as indicated by the at least one rule.

17 . The method of claim 16 , wherein the processing layout among the initial processing layout of the particular node and the processing layout of the node succeeding the particular node that is used to process the largest number of records is selected during the backward pass as the final processing layout of the particular node if the initial processing layout of the particular node and the processing layout of the node succeeding the particular node both have serial processing layouts or both have multiple parallel processing layouts but with the same or different degree of parallelism among each other.

18 . The method of claim 17 , wherein a processing layout associated with the at least one node is disregarded when selecting the final processing layout of the particular node during the backward pass.

19 . The method of claim 16 , further comprising:

after performing the forward pass and/or the backward pass, configuring the dataflow graph to perform a repartitioning operation on data to be processed by adjacent nodes in the dataflow graph having processing layouts with different degrees of parallelism.

20 . The method of claim 16 , wherein a processing layout for a node representing an operation further specifies one or more computing devices to be used for performing the operation in accordance with the specified degree of parallelism, the processing layout also specifying how many computing devices are to be used for performing the operation and identifying one or more particular computing devices to be used for performing the operation.

21 . The method of claim 20 , wherein the third set of nodes includes a first node, the first node representing a first data processing operation; and after performing the forward pass and/or the backward pass,

executing the dataflow graph in accordance with the processing layouts determined for each node in the dataflow graph, including:

performing a repartitioning operation on data processed by adjacent nodes in the dataflow graph having processing layouts with different degrees of parallelism; and

identifying, based on the initial or final processing layout determined for the first node of the third set of nodes, a set of one or more computing devices and performing, by using the identified set of computing devices, the first data processing operation in accordance with the degree of parallelism specified by the initial or final processing layout determined for the first node of the third set of nodes.

22 . At least one non-transitory computer readable storage medium storing processor executable instructions that, when executed by at least one computer hardware processor, cause the at least one computer hardware processor to perform a method comprising:

obtaining information specifying a dataflow graph, the dataflow graph comprising nodes and edges connecting the nodes, the edges representing flows of data among the nodes, the nodes comprising:

a first set of one or more nodes, each node in the first set of one or more nodes representing a respective input dataset in a set of one or more input datasets;

a second set of one or more nodes, each node in the second set of one or more nodes representing a respective output dataset in a set of one or more output datasets; and

a third set of nodes representing data processing operations, each node in the third set of nodes representing at least one of the data processing operations;

obtaining a first set of one or more processing layouts for the set of one or more input datasets and a second set of one or more processing layouts for the set of one or more output datasets, the first set of one or more processing layouts including processing layouts having different degrees of parallelism and/or the second set of one or more processing layouts having different degrees of parallelism, wherein each processing layout in the first and second sets of one or more processing layouts specifies, for a particular node in the first or second set of one or more nodes, a respective degree of parallelism to be used for performing an operation represented by the particular node;

determining processing layouts for nodes in the third set of nodes using: (a) the first set of one or more processing layouts, (b) the second set of one or more processing layouts, (c) one or more layout determination rules including at least one rule for selecting among processing layouts having different degrees of parallelism, and (d) information indicating that data generated by at least one node in the first set of one or more nodes and/or third set of nodes is not used by any nodes in the dataflow graph downstream from the at least one node, wherein determining the processing layouts for the nodes in the third set of nodes comprises:

identifying the at least one node whose data is not used by any nodes in the dataflow graph downstream from the at least one node during a forward pass starting from nodes in the first set of one or more nodes or a backward pass starting from nodes in the second set of one or more nodes; and

after determining the processing layout for each node in the dataflow graph, executing the dataflow graph in accordance with processing layouts determined for each node in the dataflow graph, the executing comprising:

reading input data from the set of the one or more input datasets represented by the first set of one or more nodes in accordance with the first set of one or more processing layouts;

processing the input data using the data processing operations represented by the third set of nodes in accordance with the processing layouts determined for the nodes in the third set of nodes; and

writing output data obtained as a result of performing the data processing operations to the set of one or more output datasets represented by the second set of one or more nodes in accordance with the second set of one or more processing layouts.

23 . A data processing system, comprising:

at least one computer hardware processor; and

at least one non-transitory computer readable storage medium storing processor executable instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform a method comprising:

obtaining information specifying a dataflow graph, the dataflow graph comprising nodes and edges connecting the nodes, the edges representing flows of data among the nodes, the nodes comprising:

a first set of one or more nodes, each node in the first set of one or more nodes representing a respective input dataset in a set of one or more input datasets;

a second set of one or more nodes, each node in the second set of one or more nodes representing a respective output dataset in a set of one or more output datasets; and

a third set of nodes representing data processing operations, each node in the third set of nodes representing at least one of the respective data processing operations;

obtaining a first set of one or more processing layouts for the set of one or more input datasets and a second set of one or more processing layouts for the set of one or more output datasets, the first set of one or more processing layouts including processing layouts having different degrees of parallelism and/or the second set of one or more processing layouts having different degrees of parallelism, wherein each processing layout in the first and second sets of one or more processing layouts specifies, for a particular node in the first or second set of one or more nodes, a respective degree of parallelism to be used for performing an operation represented by the particular node;

determining processing layouts for nodes in the third set of nodes using: (a) the first set of one or more processing layouts, (b) the second set of one or more processing layouts, (c) one or more layout determination rules including at least one rule for selecting among processing layouts having different degrees of parallelism, and (d) information indicating that data generated by at least one node in the first set of one or more nodes and/or third set of nodes is not used by any nodes in the dataflow graph downstream from the at least one node, wherein determining the processing layouts for the nodes in the third set of nodes comprises:

identifying the at least one node whose data is not used by any nodes in the dataflow graph downstream from the at least one node during a forward pass starting from nodes in the first set of one or more nodes or a backward pass starting from nodes in the second set of one or more nodes; and

after determining the processing layout for each node in the dataflow graph, executing the dataflow graph in accordance with processing layouts determined for each node in the dataflow graph, the executing comprising:

reading input data from the set of the one or more input datasets represented by the first set of one or more nodes in accordance with the first set of one or more processing layouts;

processing the input data using the data processing operations represented by the third set of nodes in accordance with the processing layouts determined for the nodes in the third set of nodes; and

writing output data obtained as a result of performing the data processing operations to the set of one or more output datasets represented by the second set of one or more nodes in accordance with the second set of one or more processing layouts.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2023
From: DICKIE, GARTH ALLEN
To: AB INITIO SOFTWARE LLC
Reel/Frame 064906/0523 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2023
From: AB INITIO SOFTWARE LLC
To: AB INITIO ORIGINAL WORKS LLC
Reel/Frame 064906/0614 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2023
From: AB INITIO ORIGINAL WORKS LLC
To: AB INITIO TECHNOLOGY LLC
Reel/Frame 064906/0706 →
Continuity (2)
Provisional Application 63250763 · Sep 30, 2021
Related Publication 20230093911A1 · Mar 30, 2023
References Cited (116)
US 5918255A · Dutka et al. · 1999 [cited by applicant]
US 5966072A · Stanfill et al. · 1999 [cited by applicant]
US 6438741B1 · Al-omari et al. · 2002 [cited by applicant]
US 7047232B1 · Serrano · 2006 [cited by applicant]
US 7716630B2 · Wholey et al. · 2010 [cited by applicant]
US 8195643B2 · Weyerhaeuser et al. · 2012 [cited by applicant]
US 8793243B2 · Weyerhaeuser et al. · 2014 [cited by applicant]
US 8838579B2 · Weyerhaeuser et al. · 2014 [cited by applicant]
US 9116955B2 · Schechter et al. · 2015 [cited by applicant]
US 9208141B2 · Chan et al. · 2015 [cited by applicant]
US 9798527B1 · Bendersky et al. · 2017 [cited by applicant]
US 10528599B1 · Pandis · 2020 [cited by applicant]
US 10817495B2 · Dickie · 2020 [cited by applicant]
US 11188434B2 · Allin et al. · 2021 [cited by applicant]
US 12032631B2 · Dickie · 2024 [cited by applicant]
US 20030163512A1 · Mikamo · 2003 [cited by applicant]
US 20030176993A1 · Lines et al. · 2003 [cited by applicant]
US 20040088666A1 · Poznanovic · 2004 [cited by examiner]
US 20040220942A1 · Agrawal et al. · 2004 [cited by applicant]
US 20040250098A1 · Licis · 2004 [cited by applicant]
US 20050034112A1 · Stanfill · 2005 [cited by applicant]
US 20060095406A1 · Bestgen et al. · 2006 [cited by applicant]
US 20070271381A1 · Wholey et al. · 2007 [cited by applicant]
US 20080140622A1 · Bestgen et al. · 2008 [cited by applicant]
US 20090077013A1 · Hu et al. · 2009 [cited by applicant]
US 20110055426A1 · Lakshmanan et al. · 2011 [cited by applicant]
US 20110197122A1 · Chan et al. · 2011 [cited by applicant]
US 20120089595A1 · Jaecksch · 2012 [cited by applicant]
US 20120284255A1 · Schechter et al. · 2012 [cited by applicant]
US 20130290297A1 · Weyerhaeuser et al. · 2013 [cited by applicant]
US 20130290298A1 · Weyerhaeuser et al. · 2013 [cited by applicant]
US 20130318068A1 · Apte et al. · 2013 [cited by applicant]
US 20140033173A1 · Frenkiel · 2014 [cited by applicant]
US 20150088856A1 · Hunter et al. · 2015 [cited by applicant]
US 20150106818A1 · Atterbury et al. · 2015 [cited by applicant]
US 20160154896A1 · Simitsis et al. · 2016 [cited by applicant]
US 20160210021A1 · Zgraggen et al. · 2016 [cited by applicant]
US 20160371067A1 · Absar et al. · 2016 [cited by applicant]
US 20170039245A1 · Wholey, III et al. · 2017 [cited by applicant]
US 20170083573A1 · Rogers et al. · 2017 [cited by applicant]
US 20170147644A1 · Lee et al. · 2017 [cited by applicant]
US 20170308411A1 · Brill · 2017 [cited by applicant]
US 20180113905A1 · Goerzig et al. · 2018 [cited by applicant]
US 20180285401A1 · Dickie · 2018 [cited by applicant]
US 20190179723A1 · Allin et al. · 2019 [cited by applicant]
US 20190370407A1 · Dickie · 2019 [cited by applicant]
US 20210182263A1 · Dickie · 2021 [cited by applicant]
US 20240311427A1 · Dickie · 2024 [cited by applicant]
US 20250036478A1 · Dickie · 2025 [cited by applicant]
CN 101443733A · 2009 [cited by applicant]
CN 103180826A · 2013 [cited by applicant]
CN 103699515A · 2014 [cited by applicant]
CN 103713958A · 2014 [cited by applicant]
CN 105518676A · 2016 [cited by applicant]
EP 1147469B1 · 2011 [cited by applicant]
EP 2657860A1 · 2013 [cited by applicant]
JP H06161773A · 1994 [cited by applicant]
JP 2001222452A · 2001 [cited by applicant]
JP 2003529808A · 2003 [cited by applicant]
JP 2005018767A · 2005 [cited by applicant]
JP 2005309684A · 2005 [cited by applicant]
JP 2014519080A · 2014 [cited by applicant]
JP 2015045996A · 2015 [cited by applicant]
KR 1020100061720A · 2010 [cited by applicant]
KR 1020120106827A · 2012 [cited by applicant]
KR 1020130130706A · 2013 [cited by applicant]
KR 1020140014123A · 2014 [cited by applicant]
KR 1020170121272A · 2017 [cited by applicant]
WO WO2012151149A2 · 2012 [cited by applicant]
WO WO2014209260A1 · 2014 [cited by applicant]
WO WO2016078072A1 · 2016 [cited by applicant]
WO WO2016116132A1 · 2016 [cited by applicant]
WO WO2017024164A1 · 2017 [cited by applicant]
WO WO2017048303A1 · 2017 [cited by applicant]
U.S. Appl. No. 15/939,820, filed Mar. 29, 2018, Dickie. [cited by applicant]
U.S. Appl. No. 15/835,823, filed Dec. 8, 2017, Allin et al. [cited by applicant]
U.S. Appl. No. 15/993,284, filed May 30, 2018, Dickie. [cited by applicant]
U.S. Appl. No. 16/255,607, filed Jan. 23, 2019, Bator et al. [cited by applicant]
U.S. Appl. No. 15/694,192, filed Sep. 1, 2017, Bator et al. [cited by applicant]
U.S. Appl. No. 17/079,994, filed Oct. 26, 2020, Dickie. [cited by applicant]
PCT/US2018/025144, Jun. 21, 2018, International Search Report and Written Opinion. [cited by applicant]
PCT/US2018/064217, Mar. 13, 2019, International Search Report and Written Opinion. [cited by applicant]
PCT/US2019/033573, Jul. 26, 2019, International Search Report and Written Opinion. [cited by applicant]
PCT/US2018/025144, Oct. 10, 2019, International Preliminary Report on Patentability. [cited by applicant]
PCT/US2019/033573, Dec. 10, 2020, International Preliminary Report on Patentability. [cited by applicant]
EP 18720443.3, Jun. 22, 2021, Communication pursuant to Article 94(3) EPC. [cited by applicant]
EP 18830094.1, Dec. 8, 2021, Communication pursuant to Article 94(3) EPC. [cited by applicant]
EP 19730617.8, Jan. 25, 2022, Communication pursuant to Article 94(3) EPC. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2018/025144 mailed Jun. 21, 2018. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2018/064217 mailed Mar. 13, 2019. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2019/033573 mailed Jul. 26, 2019. [cited by applicant]
International Preliminary Report on Patentability for International Application No. PCT/US2018/025144 mailed Oct. 10, 2019. [cited by applicant]
International Preliminary Report on Patentability for International Application No. PCT/US2019/033573 mailed Dec. 10, 2020. [cited by applicant]
Communication pursuant to Article 94(3) EPC dated Jun. 22, 2021 in connection with European Application No. 18720443.3. [cited by applicant]
Communication pursuant to Article 94(3) EPC dated Dec. 8, 2021 in connection with European Application No. 18830094.1. [cited by applicant]
Communication pursuant to Article 94(3) EPC dated Jan. 25, 2022 in connection with European Application No. 19730617.8. [cited by applicant]
[No Author Listed], ApexSQL Plan 2017—Screen Shot Tour. Jun. 25, 2017; 18 pages. Retrieved from the Internet: https://web.archive.org/web/20170625041627/https://blog.apexsql.com/apexsql-plan-2017-screen-shot-tour/ [retr… [cited by applicant]
[No Author Listed], Using Oracle Database Cloud Service Viewing Real Time SQL Monitor. Oracle Database Cloud Service. Help Center. 2016;3 pages. [cited by applicant]
Farina, SQL Server 2014 Real Time Query Monitoring. Zero to Hero: 12 Tips for the Accidental DBA. Last update: Sep. 9, 2014; 7 pages. [cited by applicant]
Gawade et al., Stethoscope: a platform for interactive visual analysis of query execution plans. Proceedings of the VLDB Endowment. Aug. 1, 2012;5(12):1926-9. [cited by applicant]
Koltakov, Real-Time SQL Monitoring. Oracle. Dec. 2009; 30 pages. [cited by applicant]
Mishra et al., ConEx: a system for monitoring queries. Proceedings of the 2007 ACM SIGMOD international conference on Management of data. Jun. 11, 2007:1076-78. [cited by applicant]
Murray et al., Incremental, iterative data processing with timely dataflow. Communications of the ACM. Sep. 22, 2016;59(10):75-83. [cited by applicant]
Extended European Search Report dated Apr. 19, 2023 in connection with European Application No. 23155765.3. [cited by applicant]
Hameurlain et al., A cost evaluator for parallel database systems. In Database and Expert Systems Applications: 6th International Conference, DEXA'95 London, United Kingdom, Sep. 4-8, 1995 Proceedings 6 1995:146-56. [cited by applicant]
Hameurlain et al., An optimization method of data communication and control for parallel execution of SQL queries. In Database and Expert Systems Applications: 4th International Conference, DEXA'93 Prague, Czech Republi… [cited by applicant]
Extended European Search Report dated Nov. 17, 2023 in connection with European Application No. 23191257.7. [cited by applicant]
Extended European Search Report dated Nov. 28, 2023 in connection with European Application No. 23191246.0. [cited by applicant]
Kajdanowicz et al., Parallel processing of large graphs. Future Generation Computer Systems. Mar. 1, 2014;32:324-37. [cited by applicant]
Supplementary Examination Report for Singapore Application No. 11201908969W dated Feb. 12, 2024. [cited by applicant]
Communication pursuant to Article 94(3) EPC dated Mar. 27, 2024 in connection with European Application No. 18830094.1. [cited by applicant]
International Preliminary Report on Patentability for International Application No. PCT/US2022/045358 mailed Apr. 11, 2024. [cited by applicant]
Supplementary Examination Report for Singapore Application No. 11202005197Q dated Jun. 27, 2024. [cited by applicant]
Gonzalez et al., {GraphX}: Graph processing in a distributed dataflow framework. 11th USENIX symposium on operating systems design and implementation (OSDI 14). Oct. 2014:599-613. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2022/045358 mailed Feb. 2, 2023. [cited by applicant]
Communication pursuant to Article 94(3) EPC dated Feb. 24, 2023 in connection with European Application No. 18830094.1. [cited by applicant]