Patents by Inventor Vasileios Trigonakis
Vasileios Trigonakis 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: 12197436Abstract: A graph processing engine is provided for executing a graph query comprising a parent query and a subquery nested within the parent query. The subquery uses a reference to one or more correlated variables from the parent query. Executing the graph query comprises initiating execution of the parent query, pausing the execution of the parent query responsive to the parent query matching the one or more correlated variables in an intermediate result set, generating a subquery identifier for each match of the one or more correlated variables, modifying the subquery to include a subquery aggregate function and a clause to group results by subquery identifier, executing the modified subquery using the intermediate result set and collecting subquery results into a subquery results table responsive to pausing execution of the parent query, and resuming execution of the parent query using the subquery results table.Type: GrantFiled: December 29, 2022Date of Patent: January 14, 2025Assignee: Oracle International CorporationInventors: Vasileios Trigonakis, Anton Ragot, Yahya Ez-zainabi, Tomas Faltin, Sungpack Hong, Hassan Chafi
-
Patent number: 12174831Abstract: A graph processing system is provided for executing scouting queries for improving query planning. A query planner creates a plurality of scouting queries, each scouting query in the plurality of scouting queries corresponding to a query plan for a graph query and having an associated confidence value. A graph processing system performs limited execution of the plurality of scouting queries and determines a metric value for each scouting query in the plurality of scouting queries based on execution of the scouting query. The system determines a score for each scouting query in the plurality of scouting queries based on its metric value and the confidence value of the corresponding query plan and selects a query plan based on the scores of the plurality of scouting queries. The system executes the graph query based on the selected query plan.Type: GrantFiled: December 2, 2022Date of Patent: December 24, 2024Assignee: Oracle International CorporationInventors: Tomáš Faltín, Vasileios Trigonakis, Sungpack Hong, Hassan Chafi
-
Patent number: 12174835Abstract: A storage manager for offloading graph components to persistent storage for reducing resident memory in a distributed graph processing engine is provided. The storage manager identifies a set of graph components required to execute a graph processing operation on a graph in a graph processing engine of a database system and reserves an amount of memory needed to load the set of graph components into memory. The storage manager loads the set of graph components into memory and initiates execution of the graph processing operation using the set of graph components in memory. The storage manager evicts one or more unused graph components from memory in response to receiving a request to free a requested amount of memory from memory.Type: GrantFiled: June 20, 2023Date of Patent: December 24, 2024Assignee: Oracle International CorporationInventors: Arnaud Delamare, Irfan Bunjaku, Vasileios Trigonakis, Calin Iorgulescu, Tomas Faltin, Sungpack Hong, Hassan Chafi
-
Publication number: 20240273093Abstract: A node of a multi-node computing system determines, in a particular instance of evaluating the graph query, that a vertex that is to be evaluated next is stored on a second node separate from the first node and generates a first message based on one or more first results of the particular instance of evaluating the graph query. The node determines, in a subsequent instance of evaluating the graph query, that a vertex to be evaluated next is stored on the second node. The node generates a merged message based on the first message and one or more subsequent results of the second instance of evaluating the graph query. The node sends the merged message to the second node.Type: ApplicationFiled: April 26, 2024Publication date: August 15, 2024Inventors: Tomas Faltin, Vasileios Trigonakis, Jean-Pierre Lozi, Sungpack Hong, Hassan Chafi
-
Publication number: 20240220496Abstract: A graph processing engine is provided for executing a graph query comprising a parent query and a subquery nested within the parent query. The subquery is an existential subquery, uses a reference to one or more correlated variables from the parent query, is inlined in the parent query pattern matching, does not have a post-processing phase, does not contain any global aggregation operations, uses a reference to at most one non-correlated variable, and does not include any filters on a non-correlated variable. Executing the graph query comprises initiating execution of the parent query, responsive to the parent query matching the one or more correlated variables in an intermediate result set, executing the subquery by applying a neighbor pattern matching operator that checks for existence of an edge, and resuming execution of the parent query based on results of the neighbor pattern matching operation.Type: ApplicationFiled: December 29, 2022Publication date: July 4, 2024Inventors: Vasileios Trigonakis, Anton Ragot, Yahya Ez-zainabi, Tomas Faltin, Sungpack Hong, Hassan Chafi
-
Publication number: 20240220495Abstract: A graph processing engine is provided for executing a graph query comprising a parent query and a subquery nested within the parent query. The subquery uses a reference to one or more correlated variables from the parent query. Executing the graph query comprises initiating execution of the parent query, pausing the execution of the parent query responsive to the parent query matching the one or more correlated variables in an intermediate result set, generating a subquery identifier for each match of the one or more correlated variables, modifying the subquery to include a subquery aggregate function and a clause to group results by subquery identifier, executing the modified subquery using the intermediate result set and collecting subquery results into a subquery results table responsive to pausing execution of the parent query, and resuming execution of the parent query using the subquery results table.Type: ApplicationFiled: December 29, 2022Publication date: July 4, 2024Inventors: Vasileios Trigonakis, Anton Ragot, Yahya Ez-zainabi, Tomas Faltin, Sungpack Hong, Hassan Chafi
-
Publication number: 20240184780Abstract: A graph processing system is provided for executing scouting queries for improving query planning. A query planner creates a plurality of scouting queries, each scouting query in the plurality of scouting queries corresponding to a query plan for a graph query and having an associated confidence value. A graph processing system performs limited execution of the plurality of scouting queries and determines a metric value for each scouting query in the plurality of scouting queries based on execution of the scouting query. The system determines a score for each scouting query in the plurality of scouting queries based on its metric value and the confidence value of the corresponding query plan and selects a query plan based on the scores of the plurality of scouting queries. The system executes the graph query based on the selected query plan.Type: ApplicationFiled: December 2, 2022Publication date: June 6, 2024Inventors: TOMÁ FALTÍN, VASILEIOS TRIGONAKIS, SUNGPACK HONG, HASSAN CHAFI
-
Patent number: 12001425Abstract: Systems and methods for improving evaluation of graph queries through depth first traversals are described herein. In an embodiment, a multi-node system evaluates against graph data a graph query that specifies a particular pattern to match by determining, at a first node of the multi-node system, in a particular instance of evaluating the graph query, that one or more first vertices on the first node match a first portion of the graph query and that a second vertex that is to be evaluated next is stored on a second node separate from the first node. In response to determining that the next vertex to be evaluated is stored on the second node separate from the first node, the first node generates a message to the second node comprising one or more results of the first portion of the graph query based on the one or more first vertices, an identifier of the next vertex, and a current stage of evaluating the graph query.Type: GrantFiled: December 9, 2020Date of Patent: June 4, 2024Assignee: Oracle International CorporationInventors: Tomas Faltin, Vasileios Trigonakis, Jean-Pierre Lozi, Sungpack Hong, Hassan Chafi
-
Publication number: 20240143594Abstract: A storage manager for offloading graph components to persistent storage for reducing resident memory in a distributed graph processing engine is provided. The storage manager identifies a set of graph components required to execute a graph processing operation on a graph in a graph processing engine of a database system and reserves an amount of memory needed to load the set of graph components into memory. The storage manager loads the set of graph components into memory and initiates execution of the graph processing operation using the set of graph components in memory. The storage manager evicts one or more unused graph components from memory in response to receiving a request to free a requested amount of memory from memory.Type: ApplicationFiled: June 20, 2023Publication date: May 2, 2024Inventors: ARNAUD DELAMARE, IRFAN BUNJAKU, VASILEIOS TRIGONAKIS, CALIN IORGULESCU, TOMAS FALTIN, SUNGPACK HONG, HASSAN CHAFI
-
Patent number: 11947539Abstract: Techniques to efficiently assign available workers to executing multiple graph queries concurrently on a distributed graph database are disclosed. The techniques comprise a runtime engine assigning multiple workers to executing portions of multiple graph queries, each worker in each assignment asynchronously executing a portion of a graph query within a parallel-while construct that includes return statements at different locations, and the runtime engine reassigning a worker to executing another portion of the same or a different graph query to optimize the overall performance of all workers.Type: GrantFiled: May 21, 2022Date of Patent: April 2, 2024Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Vasileios Trigonakis, Calin Iorgulescu, Tomas Faltin, Sungpack Hong, Hassan Chafi
-
Patent number: 11928097Abstract: Efficiently implemented herein is a deterministic semantic for property updates by graph queries. Mechanisms of determinism herein ensure data consistency for graph mutation. These mechanisms facilitate optimistic execution of graph access despite a potential data access conflict. This approach may include various combinations of special activities such as detecting potential conflicts during query compile time, applying query transformations to eliminate those conflicts during code generation where possible, and executing updates in an optimistic way that safely fails if determinism cannot be guaranteed. In an embodiment, a computer receives a request to modify a graph. The request to modify the graph is optimistically executed after preparation and according to safety precautions as presented herein. Based on optimistically executing the request, a data access conflict actually occurs and is automatically detected.Type: GrantFiled: September 20, 2021Date of Patent: March 12, 2024Assignee: Oracle International CorporationInventors: Bence Czipo, Vlad Ioan Haprian, Oskar Van Rest, Damien Hilloulin, Vasileios Trigonakis, Yahya Ez-zainabi, Sungpack Hong, Hassan Chafi
-
Patent number: 11907255Abstract: 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: GrantFiled: March 4, 2022Date of Patent: February 20, 2024Assignee: Oracle International CorporationInventors: Jinsu Lee, Petr Koupy, Vasileios Trigonakis, Sungpack Hong, Hassan Chafi
-
Publication number: 20230409610Abstract: A method, apparatus, and product to provide a parser for property graph queries with precise error reporting and auto-completion based on information from property graph schemas. The approach generally comprises analysis of graph queries prior to their execution to identify issues prior to execution. In some embodiments, the approach includes any of: use of a property graph schema to determine whether names in a received property graph query exist within a corresponding property graph; determining whether the property graph query includes a comparison of mismatched data types; providing an autocomplete suggestion feature for assistance in resolving errors or corresponding to a cursor position within a query string; or evaluation of a property graph query to determine whether it would return an empty result. In some embodiments, property graph query analysis is performed using a context aware approach.Type: ApplicationFiled: June 21, 2022Publication date: December 21, 2023Applicant: Oracle International CorporationInventors: Florian GRATZER, Oskar VAN REST, Vlad Ioan HAPRIAN, Vasileios TRIGONAKIS, Korbinian SCHMID, Steven SERRA, Sungpack HONG, Hassan CHAFI
-
Publication number: 20230376486Abstract: Techniques to efficiently assign available workers to executing multiple graph queries concurrently on a distributed graph database are disclosed. The techniques comprise a runtime engine assigning multiple workers to executing portions of multiple graph queries, each worker in each assignment asynchronously executing a portion of a graph query within a parallel-while construct that includes return statements at different locations, and the runtime engine reassigning a worker to executing another portion of the same or a different graph query to optimize the overall performance of all workers.Type: ApplicationFiled: May 21, 2022Publication date: November 23, 2023Inventors: VASILEIOS TRIGONAKIS, CALIN IORGULESCU, TOMAS FALTIN, SUNGPACK HONG, HASSAN CHAFI
-
Publication number: 20230281219Abstract: 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: ApplicationFiled: March 4, 2022Publication date: September 7, 2023Inventors: Jinsu Lee, Petr Koupy, Vasileios Trigonakis, Sungpack Hong, Hassan Chafi
-
Patent number: 11720630Abstract: Techniques are provided for finding unused vertex and edge identifiers (IDs) in a distributed graph engine. A run-time data structure may be built during the loading of the graph. The data structure identifies unavailable IDs that are associated with graph entities of the graph. The data structure is traversed to determine one or more ranges of free IDs. Unused IDs are generated from the ranges.Type: GrantFiled: January 4, 2021Date of Patent: August 8, 2023Assignee: Oracle International CorporationInventors: Arnaud Delamare, Vasileios Trigonakis, Yahya Ez-Zainabi, Sungpack Hong, Hassan Chafi
-
Publication number: 20230237047Abstract: 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: ApplicationFiled: January 26, 2022Publication date: July 27, 2023Inventors: Vasileios Trigonakis, Paul Renauld, Jinsu Lee, Petr Koupy, Sungpack Hong, Hassan Chafi
-
Patent number: 11675785Abstract: Techniques are described for enabling in-memory execution of any-sized graph data query by utilizing both depth first search (DFS) principles and breadth first search (BFS) principles to control the amount of memory used during query execution. Specifically, threads implementing a graph DBMS switch between a BFS mode of data traversal and a DFS mode of data traversal. For example, when a thread detects that there are less than a configurable threshold number of intermediate results in memory, the thread enters BFS-based traversal techniques to increase the number of intermediate results in memory. When the thread detects that there are at least the configurable threshold number of intermediate results in memory, the thread enters DFS mode to produce final results, which generally works to move the intermediate results that are currently available in memory to final query results, thereby reducing the number of intermediate results in memory.Type: GrantFiled: January 31, 2020Date of Patent: June 13, 2023Assignee: Oracle International CorporationInventors: Vasileios Trigonakis, Tomas Faltin, Jean-Pierre Lozi, Vlad Ioan Haprian, Sungpack Hong, Hassan Chafi
-
Publication number: 20230109463Abstract: Herein is fast and memory efficient iteration of elements of a graph that has (e.g. topological) changes. In an embodiment, a computer generates an element iterator that is based on a graph that contains many elements (e.g. vertices, edges, and their properties) and a delta log that represents modification(s) of the graph. The delta log only records changes, such that only some graph elements are modified and occur in the delta log. Thus, iteration of only some graph elements may need to retrieve data from the delta log. Based on the element iterator and the delta log, a first graph element is accessed during iteration. Based on the element iterator but not the delta log, a second graph element is accessed. For example, a result may be generated that is based on the first element and the second element that were iterated based on different respective data structures.Type: ApplicationFiled: September 20, 2021Publication date: April 6, 2023Inventors: Damien Hilloulin, Valentin Venzin, Vasileios Trigonakis, Martin Sevenich, Alexander Weld, Sungpack Hong, Hassan Chafi
-
Publication number: 20230095703Abstract: Efficiently implemented herein is a deterministic semantic for property updates by graph queries. Mechanisms of determinism herein ensure data consistency for graph mutation. These mechanisms facilitate optimistic execution of graph access despite a potential data access conflict. This approach may include various combinations of special activities such as detecting potential conflicts during query compile time, applying query transformations to eliminate those conflicts during code generation where possible, and executing updates in an optimistic way that safely fails if determinism cannot be guaranteed. In an embodiment, a computer receives a request to modify a graph. The request to modify the graph is optimistically executed after preparation and according to safety precautions as presented herein. Based on optimistically executing the request, a data access conflict actually occurs and is automatically detected.Type: ApplicationFiled: September 20, 2021Publication date: March 30, 2023Inventors: Bence Czipo, Vlad Ioan Haprian, Oskar Van Rest, Damien Hilloulin, Vasileios Trigonakis, Yahya Ez-zainabi, Sungpack Hong, Hassan Chafi