-
公开(公告)号:US20240220496A1
公开(公告)日:2024-07-04
申请号:US18091249
申请日:2022-12-29
Applicant: Oracle International Corporation
Inventor: Vasileios Trigonakis , Anton Ragot , Yahya Ez-zainabi , Tomas Faltin , Sungpack Hong , Hassan Chafi
IPC: G06F16/2453 , G06F16/901
CPC classification number: G06F16/24535 , G06F16/9024
Abstract: 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.
-
公开(公告)号:US11947539B2
公开(公告)日:2024-04-02
申请号:US17750339
申请日:2022-05-21
Applicant: ORACLE INTERNATIONAL CORPORATION
Inventor: Vasileios Trigonakis , Calin Iorgulescu , Tomas Faltin , Sungpack Hong , Hassan Chafi
IPC: G06F16/00 , G06F9/48 , G06F16/2453 , G06F16/27 , G06F16/901
CPC classification number: G06F16/24542 , G06F9/4881 , G06F16/27 , G06F16/9024
Abstract: 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.
-
公开(公告)号:US20210392073A1
公开(公告)日:2021-12-16
申请号:US16899185
申请日:2020-06-11
Applicant: Oracle International Corporation
Inventor: Petar Tonkovic , Vasileios Trigonakis , Tomas Faltin , Sungpack Hong , Hassan Chafi
IPC: H04L12/733 , H04L12/721 , H04L12/803 , G06F16/901 , G06F9/54
Abstract: A pattern matching engine interprets a query into a data structure resembling a finite state machine. Vertices in the query pattern are treated as states or stages, while edges connecting them are treated as state transitions or hops. To match the full pattern, the first stage is first matched by applying vertex filters, if any. If the vertex is eligible, its edges that satisfy the edge filters, if any, are followed to move to the neighbors that can potentially produce results, thus progressing to the next stage. This process is repeated; if all stages are matched, then the whole pattern has been matched successfully.
-
公开(公告)号:US20210240705A1
公开(公告)日:2021-08-05
申请号:US16778668
申请日:2020-01-31
Applicant: ORACLE INTERNATIONAL CORPORATION
Inventor: Vasileios Trigonakis , Tomas Faltin , Jean-Pierre Lozi , Vlad Ioan Haprian , Sungpack Hong , Hassan Chafi
IPC: G06F16/2452 , G06F16/2458
Abstract: 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.
-
公开(公告)号:US11074260B2
公开(公告)日:2021-07-27
申请号:US16378424
申请日:2019-04-08
Applicant: Oracle International Corporation
Inventor: Arnaud Delamare , Vasileios Trigonakis , Vlad Ioan Haprian , Oskar Van Rest , Sungpack Hong , Hassan Chafi , Tomas Faltin , Jean-Pierre Lozi
IPC: G06F16/00 , G06F16/2453 , G06F16/901 , G06F16/22 , H03M7/40 , H03M7/30
Abstract: Techniques are described herein for space-efficient encoding of label information of property graphs. In an embodiment, an input graph is received. The input graph comprises a plurality of entities and a plurality of label sets. Each entity of said plurality of entities is associated with a label set of the plurality of label sets and each label set of the plurality of label sets comprises zero or more labels of a plurality of labels. A first mapping is generated that maps each label of the plurality of labels to a label code. A second mapping is generated that maps each label integer set of a plurality of label integer sets to a label code. Each label integer set of the plurality of label integer sets corresponds to a label set of the plurality of label sets, wherein each label integer set of the plurality of label integer sets comprises label codes from the first mapping that are mapped to each label included in the corresponding label set. A compressed label set is generated for each entity of the plurality of entities. Each compressed label set comprises a plurality of bits that indicate a zeroth state, a first state, a second state, or a third state. The compressed label sets and the first and second mappings are used to efficiently evaluate graph label queries.
-
公开(公告)号:US12197436B2
公开(公告)日:2025-01-14
申请号:US18091242
申请日:2022-12-29
Applicant: Oracle International Corporation
Inventor: Vasileios Trigonakis , Anton Ragot , Yahya Ez-zainabi , Tomas Faltin , Sungpack Hong , Hassan Chafi
IPC: G06F16/2453 , G06F16/901
Abstract: 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.
-
公开(公告)号:US20240273093A1
公开(公告)日:2024-08-15
申请号:US18648272
申请日:2024-04-26
Applicant: Oracle International Corporation
Inventor: Tomas Faltin , Vasileios Trigonakis , Jean-Pierre Lozi , Sungpack Hong , Hassan Chafi
IPC: G06F16/2452 , G06F16/2455 , G06F16/248
CPC classification number: G06F16/24526 , G06F16/24556 , G06F16/248
Abstract: 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.
-
公开(公告)号:US20220179859A1
公开(公告)日:2022-06-09
申请号:US17116831
申请日:2020-12-09
Applicant: Oracle International Corporation
Inventor: Tomas Faltin , Vasileios Trigonakis , Jean-Pierre Lozi , Sungpack Hong , Hassan Chafi
IPC: G06F16/2452 , G06F16/2455 , G06F16/248
Abstract: 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. In response to generating the message from the first node to the second node, the first node ceases the particular instance of evaluating the graph query.
-
公开(公告)号:US12174835B2
公开(公告)日:2024-12-24
申请号:US18211613
申请日:2023-06-20
Applicant: Oracle International Corporation
Inventor: Arnaud Delamare , Irfan Bunjaku , Vasileios Trigonakis , Calin Iorgulescu , Tomas Faltin , Sungpack Hong , Hassan Chafi
IPC: G06F17/30 , G06F16/22 , G06F16/23 , G06F16/2453 , G06F16/2455
Abstract: 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.
-
公开(公告)号:US20240220495A1
公开(公告)日:2024-07-04
申请号:US18091242
申请日:2022-12-29
Applicant: Oracle International Corporation
Inventor: Vasileios Trigonakis , Anton Ragot , Yahya Ez-zainabi , Tomas Faltin , Sungpack Hong , Hassan Chafi
IPC: G06F16/2453 , G06F16/901
CPC classification number: G06F16/24535 , G06F16/24537 , G06F16/9024
Abstract: 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.
-
-
-
-
-
-
-
-
-