IP Library Granted Patent US 12,450,231
Granted Patent B1
US 12,450,231 · App. 18/662,394 · Granted Oct 21, 2025

Global directed acyclic graphs in distributed computing systems

Inventor: Lun Gao (Hangzhou, CN)
Assignee: Zoom Communications, Inc.
G06F16/24542G06F16/9024
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,450,231
App. No.
18/662,394
Granted
Oct 21, 2025
Kind
B1
Abstract

Creating a global directed acyclic graph (DAG) of an execution plan according to a logical plan derived from one or more Structured Query Language (SQL) queries. The logical plan comprises a set of SqlNodes, where each non-root SqlNode includes parent SqlNode information. The DAG comprises vertices connected by edges, wherein each vertex corresponds to a respective relational expression of a set of relational expressions and is labeled according to an operator of an execution engine, such as Spark, that has been mapped to the respective relational expression. The DAG may be displayed via a graphical user interface. In some implementations, one or more vertices includes information indicating a level of execution parallelism and/or cache enablement.

Claims (61)

1. A method, comprising:

compiling a Structured Query Language (SQL) query into a set of relational expressions, wherein each relational expression that is other than a root relational expression includes information identifying one or more parent relational expressions;

mapping respective operators of an execution engine to respective relational expressions;

creating an execution plan of the SQL query according to the set of relational expressions and the mapping of respective operators to respective relational expressions;

creating a directed acyclic graph (DAG) of the execution plan comprising vertices connected by edges, wherein each vertex corresponds to a respective relational expression of the set of relational expressions and is labeled according to the operator mapped to the respective relational expression; and

causing a graphical user interface to display the DAG.

2. The method of claim 1 , further comprising:

receiving user input indicating a level of execution parallelism associated with an individual one of the operators; and

further labeling the vertex labeled by the individual one of the operators with the level of execution parallelism.

3. The method of claim 1 , further comprising:

receiving user input indicating cache enablement associated with an individual one of the operators; and

further labeling the vertex labeled by the individual one of the operators with the cache enablement.

4. The method of claim 1 , further comprising:

mapping respective operators of an execution engine to respective relational expressions based on regular-expression matching between names of respective relational expressions and names of respective operators.

5. The method of claim 1 , further comprising:

labeling at least one edge incident to a respective vertex according to a shuffle strategy based on an origin vertex of the at least one edge and the respective vertex.

6. The method of claim 1 , further comprising:

labeling at least one edge incident to a respective vertex as “Key” where an origin vertex of the at least one edge is labeled as “Join,” “Union,” “Aggregate,” or “Sink”.

7. The method of claim 1 , further comprising:

labeling at least one edge incident to a respective vertex as “Forward” where an origin vertex of the at least one edge is labeled as “Source,” “Filter,” “Project,” or “KeyBy”.

8. The method of claim 1 , further comprising:

labeling at least one vertex as “Join,” “Union,” “Aggregate,” “Sink,” “Source,” “Filter,” “Project,” or “KeyBy”.

9. The method of claim 1 , further comprising:

translating the execution plan to a DOT description.

10. The method of claim 1 , further comprising:

simulating an execution of the execution plan by traversing the DAG from its root vertex.

11. The method of claim 1 , further comprising:

performing chain optimization on the execution plan; and

merging at least two vertices according to the chain optimization.

12. A non-transitory computer-readable medium storing instructions operable to cause one or more processors to perform operations comprising:

compiling a Structured Query Language (SQL) query into a set of relational expressions, wherein each relational expression that is other than a root relational expression includes information identifying one or more parent relational expressions;

mapping respective operators of an execution engine to respective relational expressions;

creating an execution plan of the SQL query according to the set of relational expressions and the mapping of respective operators to respective relational expressions;

creating a directed acyclic graph (DAG) of the execution plan comprising vertices connected by edges, wherein each vertex corresponds to a respective relational expression of the set of relational expressions and is labeled according to the operator mapped to the respective relational expression; and

causing a graphical user interface to display the DAG.

13. The medium of claim 12 , the operations further comprising:

translating the execution plan to a DOT description; and

causing the graphical user interface to display the DAG, generated by a third-party visualization tool, according to the DOT description, via the graphical user interface.

14. The medium of claim 12 , the operations further comprising:

labeling each edge incident to a respective vertex as “Key” where an origin vertex of the respective edge is labeled as “Join,” “Union,” “Aggregate,” or “Sink”.

15. The medium of claim 12 , the operations further comprising:

labeling each edge incident to a respective vertex as “Forward” where an origin vertex of the respective edge is labeled as “Source,” “Filter,” “Project,” or “KeyBy”.

16. A system, comprising:

one or more memories; and

one or more processors configured to execute instructions stored in the one or more memories to:

compile a Structured Query Language (SQL) query into a set of relational expressions, wherein each relational expression that is other than a root relational expression includes information identifying one or more parent relational expressions;

map respective operators of an execution engine to respective relational expressions;

create an execution plan of the SQL query according to the set of relational expressions and the mapping of respective operators to respective relational expressions;

create a directed acyclic graph (DAG) of the execution plan comprising vertices connected by edges, wherein each vertex corresponds to a respective relational expression of the set of relational expressions and is labeled according to the operator mapped to the respective relational expression; and

cause a graphical user interface to display the DAG.

17. The system of claim 16 , wherein the one or more processors are configured to execute the instructions to:

receive user input indicating a level of execution parallelism and a cache enablement associated with an individual one of the operators; and

further label the vertex labeled by the individual one of the operators with the level of execution parallelism and the cache enablement.

18. The system of claim 16 , wherein the one or more processors are configured to execute the instructions to:

label each edge incident to a respective vertex according to a shuffle strategy based on an origin vertex of the respective edge and the respective vertex.

19. The system of claim 16 , wherein the one or more processors are configured to execute the instructions to:

perform chain optimization on the execution plan; and

merge all possible vertices according to the chain optimization.

20. The system of claim 16 , wherein the one or more processors are configured to execute the instructions to:

simulate an execution of the execution plan by traversing the DAG from its root vertex; and

spotlighting, via the graphical user interface, each vertex or edge while its execution is being simulated.

Assignments (2)
CHANGE OF NAME Recorded Jan 7, 2025
From: ZOOM VIDEO COMMUNICATIONS, INC.
To: ZOOM COMMUNICATIONS, INC.
Reel/Frame 069839/0593 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2024
From: GAO, LUN
To: ZOOM VIDEO COMMUNICATIONS, INC.
Reel/Frame 067693/0492 →
References Cited (10)
US 11249876B2 · Singhal et al. · 2022 [cited by applicant]
US 11334567B2 · Ziauddin · 2022 [cited by examiner]
US 11394769B2 · Park et al. · 2022 [cited by applicant]
US 20230057335A1 · Prismon et al. · 2023 [cited by applicant]
US 20230252077A1 · Kapp · 2023 [cited by examiner]
CN 107402952A · 2017 [cited by applicant]
CN 109033109A · 2018 [cited by applicant]
CN 113434533A · 2021 [cited by applicant]
CN 109690517B · 2023 [cited by applicant]
CN 111240662B · 2024 [cited by applicant]