-
公开(公告)号: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.
-
公开(公告)号:US11921785B2
公开(公告)日:2024-03-05
申请号:US17584262
申请日:2022-01-25
Applicant: Oracle International Corporation
Inventor: Hugo Kapp , Laurent Daynes , Vlad Ioan Haprian , Jean-Pierre Lozi , Zhen Hua Liu , Marco Arnaboldi , Sabina Petride , Andrew Witkowski , Hassan Chafi , Sungpack Hong
IPC: G06F16/901 , G06F16/903
CPC classification number: G06F16/9024 , G06F16/90335
Abstract: Techniques described herein allow a user of an RDBMS to specify a graph algorithm function (GAF) declaration, which defines a graph algorithm that takes a graph object as input and returns a logical graph object as output. A database dictionary stores the GAF declaration, which allows addition of GAFs without changing the RDBMS kernel. GAFs are used within graph queries to compute output properties of property graph objects. Output properties are accessible in the enclosing graph pattern matching query, and are live for the duration of the query cursor execution. According to various embodiments, the declaration of a GAF includes a DESCRIBE function, used for semantic analysis of the GAF, and an EXECUTE function, which defines the operations performed by the GAF. Furthermore, composition of GAFs in a graph query is done by supplying, as the input graph argument of an outer GAF, the result of an inner GAF.
-
公开(公告)号:US20230252077A1
公开(公告)日:2023-08-10
申请号:US17584262
申请日:2022-01-25
Applicant: Oracle International Corporation
Inventor: Hugo Kapp , Laurent Daynes , Vlad Ioan Haprian , Jean-Pierre Lozi , Zhen Hua Liu , Marco Arnaboldi , Sabina Petride , Andrew Witkowski , Hassan Chafi , Sungpack Hong
IPC: G06F16/901 , G06F16/903
CPC classification number: G06F16/9024 , G06F16/90335
Abstract: Techniques described herein allow a user of an RDBMS to specify a graph algorithm function (GAF) declaration, which defines a graph algorithm that takes a graph object as input and returns a logical graph object as output. A database dictionary stores the GAF declaration, which allows addition of GAFs without changing the RDBMS kernel. GAFs are used within graph queries to compute output properties of property graph objects. Output properties are accessible in the enclosing graph pattern matching query, and are live for the duration of the query cursor execution. According to various embodiments, the declaration of a GAF includes a DESCRIBE function, used for semantic analysis of the GAF, and an EXECUTE function, which defines the operations performed by the GAF. Furthermore, composition of GAFs in a graph query is done by supplying, as the input graph argument of an outer GAF, the result of an inner GAF.
-
公开(公告)号: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.
-
公开(公告)号:US20220114178A1
公开(公告)日:2022-04-14
申请号:US17162564
申请日:2021-01-29
Applicant: Oracle International Corporation
Inventor: Vlad Ioan Haprian , Mikael Gonzalez Morales , Laurent Daynes , Zhen Hua Liu , Danica Porobic , Marco Arnaboldi , Jean-Pierre Lozi , Hugo Kapp , Sungpack Hong , Shasank Kisan Chavan , Hassan Chafi
IPC: G06F16/2455 , G06F16/26 , G06F16/2453 , G06F16/248 , G06F16/22
Abstract: Techniques are provided for processing a graph query by exploiting an in-memory graph index and minimizing the number of storage accesses needed to project properties of generated paths. A predefined number of paths from a graph query runtime is accumulated, using different data structures, before executing storage accesses necessary to retrieve all properties needed. A first data structure stores all paths from the graph query runtime that hit cache(s) entirely. A second data structure stores paths that do not hit caches at any level or only a subset of the levels does. Once any of these data structures are full, result rows are produced based on the two data structures prior to extracting more paths from the graph query runtime.
-
公开(公告)号:US11093459B2
公开(公告)日:2021-08-17
申请号:US16747827
申请日:2020-01-21
Applicant: Oracle International Corporation
Inventor: Marco Arnaboldi , Jean-Pierre Lozi , Laurent Phillipe Daynes , Vlad Ioan Haprian , Shasank Kisan Chavan , Hugo Kapp , Sungpack Hong
Abstract: Herein are techniques that concurrently populate entries in a compressed sparse row (CSR) encoding, of a type of edge of a heterogenous graph. In an embodiment, a computer obtains a mapping of a relational schema to a graph data model. The relational schema defines vertex tables that correspond to vertex types in the graph data model, and edge tables that correspond to edge types in the graph data model. Each edge type is associated with a source vertex type and a target vertex type. For each vertex type, a sequence of persistent identifiers of vertices is obtained. Based on the mapping and for a CSR representation of each edge type, a source array is populated that, for a same vertex ordering as the sequence of persistent identifiers for the source vertex type, is based on counts of edges of the edge type that originate from vertices of the source vertex type. For the CSR, the computer populates, in parallel and based on said mapping, a destination array that contains canonical offsets as sequence positions within the sequence of persistent identifiers of the vertices.
-
公开(公告)号:US20210182316A1
公开(公告)日:2021-06-17
申请号:US16710740
申请日:2019-12-11
Applicant: Oracle International Corporation
Inventor: Vlad Haprian , Laurent Daynes , Shasank K. Chavan , Jean-Pierre Lozi , Vasileios Trigonakis , Sungpack Hong , Marco Arnaboldi , Ciprian Baetu
IPC: G06F16/28 , G06F16/22 , G06F16/901 , G06F16/242
Abstract: An in-memory graph query runtime is integrated inside a database management system and is capable of performing simple patter-matching queries against homogeneous graphs. The runtime efficiently combines breadth-first (BFS) and depth-first (DFS) neighbor traversal algorithms to achieve a hybrid runtime that takes the best from both sides. As a result, the hybrid runtime is able to process arbitrarily large queries with a fixed amount of memory, optimizing for memory locality.
-
公开(公告)号:US20210182285A1
公开(公告)日:2021-06-17
申请号:US16710715
申请日:2019-12-11
Applicant: Oracle International Corporation
Inventor: Vlad Haprian , Laurent Daynes , Shasank K. Chavan , Jean-Pierre Lozi , Vasileios Trigonakis , Sungpack Hong , Marco Arnaboldi , Ciprian Baetu
IPC: G06F16/2453 , G06F16/242 , G06F16/23 , G06F16/28
Abstract: An in-memory graph query runtime is integrated inside a database management system and is capable of performing simple patter-matching queries against homogeneous graphs. The runtime efficiently combines breadth-first (BFS) and depth-first (DFS) neighbor traversal algorithms to achieve a hybrid runtime that takes the best from both sides. As a result, the hybrid runtime is able to process arbitrarily large queries with a fixed amount of memory, optimizing for memory locality.
-
公开(公告)号:US20250139096A1
公开(公告)日:2025-05-01
申请号:US18385617
申请日:2023-10-31
Applicant: Oracle International Corporation
Inventor: Laurent Daynes , Martin Brugnara , Jean-Pierre Lozi , Calin Iorgulescu , Marco Arnaboldi , Hugo Kapp , Vlad Ioan Haprian , Zhen Hua Liu , Sungpack Hong
IPC: G06F16/2455 , G06F16/22 , G06F16/23
Abstract: Techniques are described for applying topological graph changes and traversing the modified graph. In an implementation, a set of compile processes schedules the graph changes caused by a DML (Data Manipulation Language) statement. Based on the requested graph operation in a received query for graph, a set of graph operation processes generate extensions to the graph that capture the changes to the graph by the DML. The received graph operation(s) are then performed by traversing both the existing graph and the generated extensions.
-
公开(公告)号:US20250094443A1
公开(公告)日:2025-03-20
申请号:US18959311
申请日:2024-11-25
Applicant: Oracle International Corporation
Inventor: Iraklis Psaroudakis , Stefan Kaestle , Daniel J. Goodman , Jean-Pierre Lozi , Matthias Grimmer , Timothy L. Harris
Abstract: Adaptive data collections may include various type of data arrays, sets, bags, maps, and other data structures. A simple interface for each adaptive collection may provide access via a unified API to adaptive implementations of the collection. A single adaptive data collection may include multiple, different adaptive implementations. A system configured to implement adaptive data collections may include the ability to adaptively select between various implementations, either manually or automatically, and to map a given workload to differing hardware configurations. Additionally, hardware resource needs of different configurations may be predicted from a small number of workload measurements. Adaptive data collections may provide language interoperability, such as by leveraging runtime compilation to build adaptive data collections and to compile and optimize implementation code and user code together. Adaptive data collections may also provide language-independent such that implementation code may be written once and subsequently used from multiple programming languages.
-
-
-
-
-
-
-
-
-