Patents by Inventor Petr Koupy

Petr Koupy has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 11907255
    Abstract: In an embodiment, multiple computers cooperate to retrieve content from tables in a relational database. Each table contains respective rows. Each row contains a vertex of a graph. Many high-degree vertices are identified. Each high-degree vertex is connected to respective edges in the graph. A count of the edges of each high-degree vertex exceeds a degree threshold. A central computer detects that all vertices in a high-degree subset of tables are high-degree vertices. Based on detecting the high-degree subset of tables, multiple vertices of the graph that are not in the high-degree subset of tables are replicated. Within local storage capacity limits of the computers, this degree-based replication may be supplemented with other vertex replication strategies that are schema based, content based, or workload based. This intelligent selective replication maximizes system throughput by minimizing graph data access latency based on data locality.
    Type: Grant
    Filed: March 4, 2022
    Date of Patent: February 20, 2024
    Assignee: Oracle International Corporation
    Inventors: Jinsu Lee, Petr Koupy, Vasileios Trigonakis, Sungpack Hong, Hassan Chafi
  • Publication number: 20230281219
    Abstract: In an embodiment, multiple computers cooperate to retrieve content from tables in a relational database. Each table contains respective rows. Each row contains a vertex of a graph. Many high-degree vertices are identified. Each high-degree vertex is connected to respective edges in the graph. A count of the edges of each high-degree vertex exceeds a degree threshold. A central computer detects that all vertices in a high-degree subset of tables are high-degree vertices. Based on detecting the high-degree subset of tables, multiple vertices of the graph that are not in the high-degree subset of tables are replicated. Within local storage capacity limits of the computers, this degree-based replication may be supplemented with other vertex replication strategies that are schema based, content based, or workload based. This intelligent selective replication maximizes system throughput by minimizing graph data access latency based on data locality.
    Type: Application
    Filed: March 4, 2022
    Publication date: September 7, 2023
    Inventors: Jinsu Lee, Petr Koupy, Vasileios Trigonakis, Sungpack Hong, Hassan Chafi
  • Publication number: 20230237047
    Abstract: Data structures and methods are described for applying mutations on a distributed graph in a fast and memory-efficient manner. Nodes in a distributed graph processing system may store graph information such as vertices, edges, properties, vertex keys, vertex degree counts, and other information in graph arrays, which are divided into shared arrays and delta logs. The shared arrays on a local node remain immutable and are the starting point of a graph, on top of which mutations build new snapshots. Mutations may be supported at both the entity and table levels. Periodic delta log consolidation may occur at multiple levels to prevent excessive delta log buildup. Consolidation at the table level may also trigger rebalancing of vertices across the nodes.
    Type: Application
    Filed: January 26, 2022
    Publication date: July 27, 2023
    Inventors: Vasileios Trigonakis, Paul Renauld, Jinsu Lee, Petr Koupy, Sungpack Hong, Hassan Chafi
  • Publication number: 20230121198
    Abstract: Techniques herein minimally communicate between computers to repartition a graph. In embodiments, each computer receives a partition of edges and vertices of the graph. For each of its edges or vertices, each computer stores an intermediate representation into an edge table (ET) or vertex table. Different edges of a vertex may be loaded by different computers, which may cause a conflict. Each computer announces that a vertex resides on the computer to a respective tracking computer. Each tracking computer makes assignments of vertices to computers and publicizes those assignments. Each computer that loaded conflicted vertices transfers those vertices to computers of the respective assignments. Each computer stores a materialized representation of a partition based on: the ET and vertex table of the computer, and the vertices and edges that were transferred to the computer. Edges stored in the materialized representation are stored differently than edges stored in the ET.
    Type: Application
    Filed: December 19, 2022
    Publication date: April 20, 2023
    Inventors: Petr Koupy, Thomas Manhardt, Siegfried Depner, Sungpack Hong, Hassan Chafi
  • Patent number: 11561780
    Abstract: Techniques herein minimally communicate between computers to repartition a graph. In embodiments, each computer receives a partition of edges and vertices of the graph. For each of its edges or vertices, each computer stores an intermediate representation into an edge table (ET) or vertex table. Different edges of a vertex may be loaded by different computers, which may cause a conflict. Each computer announces that a vertex resides on the computer to a respective tracking computer. Each tracking computer makes assignments of vertices to computers and publicizes those assignments. Each computer that loaded conflicted vertices transfers those vertices to computers of the respective assignments. Each computer stores a materialized representation of a partition based on: the ET and vertex table of the computer, and the vertices and edges that were transferred to the computer. Edges stored in the materialized representation are stored differently than edges stored in the ET.
    Type: Grant
    Filed: October 13, 2020
    Date of Patent: January 24, 2023
    Assignee: Oracle International Corporation
    Inventors: Petr Koupy, Thomas Manhardt, Siegfried Depner, Sungpack Hong, Hassan Chafi
  • Patent number: 11461130
    Abstract: In an embodiment, a computer of a cluster of computers receives graph logic that specifies a sequence of invocations, including a current invocation and a next invocation, of parallelism operations that can detect whether the graph logic should prematurely terminate. The computer initiates, on the computers of the cluster, execution of the graph logic to process a distributed graph. Before the current invocation, the graph logic registers reversion logic for a modification of the distributed graph that execution of the graph logic has caused. During the current invocation, it is detected that the graph logic should prematurely terminate. Execution of the graph logic on the cluster is terminated without performing the next invocation in the sequence of invocations. The reversion logic reverses the modification of the distributed graph to restore consistency. The distributed graph is retained in volatile memory of the cluster for reuse such as relaunch of the graph logic.
    Type: Grant
    Filed: May 26, 2020
    Date of Patent: October 4, 2022
    Assignee: Oracle International Corporation
    Inventors: Petr Koupy, Vasileios Trigonakis, Iraklis Psaroudakis, Jinsoo Lee, Sungpack Hong, Hassan Chafi
  • Patent number: 11363093
    Abstract: Techniques are described herein for evaluating graph processing tasks using a multi-stage pipelining communication mechanism. In a multi-node system comprising a plurality of nodes, each node of said plurality of nodes executes a respective communication agent object. The respective communication agent object comprises: a sender lambda function is configured to perform sending operations and generate source messages based on the sender operations. An intermediate lambda function is configured to read source messages marked for a node, perform intermediate operations based on the source messages and generate intermediate messages based on the intermediate operations. A final receiver lambda function configured to: read intermediate messages marked for said each node, perform final operations based on the intermediate messages and generate a final result based on the final operations.
    Type: Grant
    Filed: May 1, 2018
    Date of Patent: June 14, 2022
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Jinsu Lee, Thomas Manhardt, Sungpack Hong, Petr Koupy, Hassan Chafi, Vasileios Trigonakis
  • Patent number: 11250059
    Abstract: Techniques are described herein for early pruning of potential graph query results. Specifically, based on determining that property values of a path through graph data cannot affect results of a query, the path is pruned from a set of potential query solutions prior to fully exploring the path. Early solution pruning is performed on prunable queries that project prunable functions including MIN, MAX, SUM, and DISTINCT, the results of which are not tied to a number of paths explored for query execution. A database system implements early solution pruning for a prunable query based on intermediate results maintained for the query during query execution. Specifically, when a system determines that property values of a given potential solution path cannot affect the query results reflected in intermediate results maintained for the query, the path is discarded from the set of possible query solutions without further exploration of the path.
    Type: Grant
    Filed: January 9, 2020
    Date of Patent: February 15, 2022
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Arnaud Delamare, Vasileios Trigonakis, Jean-Pierre Lozi, Vlad Ioan Haprian, Petr Koupy, Hassan Chafi, Sungpack Hong
  • Publication number: 20210373938
    Abstract: In an embodiment, a computer of a cluster of computers receives graph logic that specifies a sequence of invocations, including a current invocation and a next invocation, of parallelism operations that can detect whether the graph logic should prematurely terminate. The computer initiates, on the computers of the cluster, execution of the graph logic to process a distributed graph. Before the current invocation, the graph logic registers reversion logic for a modification of the distributed graph that execution of the graph logic has caused. During the current invocation, it is detected that the graph logic should prematurely terminate. Execution of the graph logic on the cluster is terminated without performing the next invocation in the sequence of invocations. The reversion logic reverses the modification of the distributed graph to restore consistency. The distributed graph is retained in volatile memory of the cluster for reuse such as relaunch of the graph logic.
    Type: Application
    Filed: May 26, 2020
    Publication date: December 2, 2021
    Inventors: Petr Koupy, Vasileios Trigonakis, Iraklis Psaroudakis, Jinsoo Lee, Sungpack Hong, Hassan Chafi
  • Publication number: 20210216590
    Abstract: Techniques are described herein for early pruning of potential graph query results. Specifically, based on determining that property values of a path through graph data cannot affect results of a query, the path is pruned from a set of potential query solutions prior to fully exploring the path. Early solution pruning is performed on prunable queries that project prunable functions including MIN, MAX, SUM, and DISTINCT, the results of which are not tied to a number of paths explored for query execution. A database system implements early solution pruning for a prunable query based on intermediate results maintained for the query during query execution. Specifically, when a system determines that property values of a given potential solution path cannot affect the query results reflected in intermediate results maintained for the query, the path is discarded from the set of possible query solutions without further exploration of the path.
    Type: Application
    Filed: January 9, 2020
    Publication date: July 15, 2021
    Inventors: ARNAUD DELAMARE, VASILEIOS TRIGONAKIS, JEAN-PIERRE LOZI, VLAD IOAN HAPRIAN, PETR KOUPY, HASSAN CHAFI, SUNGPACK HONG
  • Patent number: 10990595
    Abstract: Techniques are described herein for asynchronous execution of queries on statically replicated graph data. In an embodiment, a graph is partitioned among a plurality of computers executing the graph querying engine. One or more high-degree vertices of the graph are each replicated in each graph partition. The partitions, including the replicated high-degree vertices, are loaded in memory of the plurality of computers. To execute a query, a query plan is generated based on the query. The query plan specifies a plurality of operators and an order for the plurality of operators. The order is such that if an operator requires data generated by another operator, then the other operator is ordered before the operator in the query plan. Replicated copies of a vertex is visited if matches made by subsequent operator(s) are limited by data unique to the replicated vertices.
    Type: Grant
    Filed: February 12, 2019
    Date of Patent: April 27, 2021
    Assignee: Oracle International Corporation
    Inventors: Nicholas Roth, Sungpack Hong, Petr Koupy, Jinsu Lee, Vasileios Trigonakis, Abderrahmane Melhaoui, Stefan Kaestle
  • Publication number: 20210042102
    Abstract: Techniques herein minimally communicate between computers to repartition a graph. In embodiments, each computer receives a partition of edges and vertices of the graph. For each of its edges or vertices, each computer stores an intermediate representation into an edge table (ET) or vertex table. Different edges of a vertex may be loaded by different computers, which may cause a conflict. Each computer announces that a vertex resides on the computer to a respective tracking computer. Each tracking computer makes assignments of vertices to computers and publicizes those assignments. Each computer that loaded conflicted vertices transfers those vertices to computers of the respective assignments. Each computer stores a materialized representation of a partition based on: the ET and vertex table of the computer, and the vertices and edges that were transferred to the computer. Edges stored in the materialized representation are stored differently than edges stored in the ET.
    Type: Application
    Filed: October 13, 2020
    Publication date: February 11, 2021
    Inventors: Petr Koupy, Thomas Manhardt, Siegfried Depner, Sungpack Hong, Hassan Chafi
  • Patent number: 10846069
    Abstract: Techniques herein minimally communicate between computers to repartition a graph. In embodiments, each computer receives a partition of edges and vertices of the graph. For each of its edges or vertices, each computer stores an intermediate representation into an edge table (ET) or vertex table. Different edges of a vertex may be loaded by different computers, which may cause a conflict. Each computer announces that a vertex resides on the computer to a respective tracking computer. Each tracking computer makes assignments of vertices to computers and publicizes those assignments. Each computer that loaded conflicted vertices transfers those vertices to computers of the respective assignments. Each computer stores a materialized representation of a partition based on: the ET and vertex table of the computer, and the vertices and edges that were transferred to the computer. Edges stored in the materialized representation are stored differently than edges stored in the ET.
    Type: Grant
    Filed: September 30, 2017
    Date of Patent: November 24, 2020
    Assignee: Oracle International Corporation
    Inventors: Petr Koupy, Thomas Manhardt, Siegfried Depner, Sungpack Hong, Hassan Chafi
  • Publication number: 20190354526
    Abstract: Techniques are described herein for asynchronous execution of queries on statically replicated graph data. In an embodiment, a graph is partitioned among a plurality of computers executing the graph querying engine. One or more high-degree vertices of the graph are each replicated in each graph partition. The partitions, including the replicated high-degree vertices, are loaded in memory of the plurality of computers. To execute a query, a query plan is generated based on the query. The query plan specifies a plurality of operators and an order for the plurality of operators. The order is such that if an operator requires data generated by another operator, then the other operator is ordered before the operator in the query plan. Replicated copies of a vertex is visited if matches made by subsequent operator(s) are limited by data unique to the replicated vertices.
    Type: Application
    Filed: February 12, 2019
    Publication date: November 21, 2019
    Inventors: Nicholas Roth, Sungpack Hong, Petr Koupy, Jinsu Lee, Vasileios Trigonakis, Abderrahmane Melhaoui, Stefan Kaestle
  • Publication number: 20190342372
    Abstract: Techniques are described herein for evaluating graph processing tasks using a multi-stage pipelining communication mechanism. In a multi-node system comprising a plurality of nodes, each node of said plurality of nodes executing a respective communication agent object, wherein said respective communication agent object comprises: a sender lambda function is configured to: perform one or more sending operations, generate source messages based on the one or more sender operations, each source message of said source messages being marked for a particular node of said plurality of nodes. An intermediate lambda function is configured to: read source messages marked for said each node and sent to said each node, perform one or more intermediate operations based on the one or more source messages, generate intermediate messages based on the one or more intermediate operations, each intermediate message of said intermediate messages being marked for a particular node of said plurality of nodes.
    Type: Application
    Filed: May 1, 2018
    Publication date: November 7, 2019
    Inventors: Jinsu Lee, Thomas Manhardt, Sungpack Hong, Petr Koupy, Hassan Chafi, Vasileios Trigonakis
  • Publication number: 20190102154
    Abstract: Techniques herein minimally communicate between computers to repartition a graph. In embodiments, each computer receives a partition of edges and vertices of the graph. For each of its edges or vertices, each computer stores an intermediate representation into an edge table (ET) or vertex table. Different edges of a vertex may be loaded by different computers, which may cause a conflict. Each computer announces that a vertex resides on the computer to a respective tracking computer. Each tracking computer makes assignments of vertices to computers and publicizes those assignments. Each computer that loaded conflicted vertices transfers those vertices to computers of the respective assignments. Each computer stores a materialized representation of a partition based on: the ET and vertex table of the computer, and the vertices and edges that were transferred to the computer. Edges stored in the materialized representation are stored differently than edges stored in the ET.
    Type: Application
    Filed: September 30, 2017
    Publication date: April 4, 2019
    Inventors: Petr Koupy, Thomas Manhardt, Siegfried Depner, Sungpack Hong, Hassan Chafi