-
公开(公告)号:US20220129465A1
公开(公告)日:2022-04-28
申请号:US17080719
申请日:2020-10-26
Applicant: Oracle International Corporation
Inventor: Vlad Haprian , Laurent Daynes , Zhen Hua Liu , Lei Sheng , Hugo Kapp , Marco Arnaboldi , Jean-Pierre Lozi , Andrew Witkowski , Hassan Chafi , Sungpack Hong
IPC: G06F16/2455 , G06F16/2453
Abstract: Techniques support graph pattern matching queries inside a relational database management system (RDBMS) that supports SQL execution. The techniques compile a graph pattern matching query into a SQL query that can then be executed by the relational engine. As a result, techniques enable execution of graph pattern matching queries on top of the relational engine by avoiding any change in the existing SQL engine.
-
12.
公开(公告)号:US20220129461A1
公开(公告)日:2022-04-28
申请号:US17080700
申请日:2020-10-26
Applicant: Oracle International Corporation
Inventor: Vlad Haprian , Laurent Daynes , Zhen Hua Liu , Lei Sheng , Hugo Kapp , Marco Arnaboldi , Jean-Pierre Lozi , Andrew Witkowski , Hassan Chafi , Sungpack Hong
IPC: G06F16/2453 , G06F16/901 , G06F16/2455
Abstract: Techniques support graph pattern matching queries inside a relational database management system (RDBMS) that supports SQL execution. The techniques compile a graph pattern matching query into a SQL query that can then be executed by the relational engine. As a result, techniques enable execution of graph pattern matching queries on top of the relational engine by avoiding any change in the existing SQL engine.
-
公开(公告)号: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.
-
公开(公告)号:US20210279282A1
公开(公告)日:2021-09-09
申请号:US17330046
申请日:2021-05-25
Applicant: Oracle International Corporation
Inventor: DAMIEN HILLOULIN , DAVIDE BARTOLINI , OSKAR VAN REST , Alexander Weld , Sungpack Hong , Hassan Chafi
IPC: G06F16/901 , G06F16/28 , G06F16/22
Abstract: Techniques are provided herein for efficient representation of heterogeneous graphs in memory. In an embodiment, vertices and edges of the graph are segregated by type. Each property of a type of vertex or edge has values stored in a respective vector. Directed or undirected edges of a same type are stored in compressed sparse row (CSR) format. The CSR format is more or less repeated for edge traversal in either forward or reverse direction. An edge map translates edge offsets obtained from traversal in the reverse direction for use with data structures that expect edge offsets in the forward direction. Subsequent filtration and/or traversal by type or property of vertex or edge entails minimal data access and maximal data locality, thereby increasing efficient use of the graph.
-
公开(公告)号:US20210271710A1
公开(公告)日:2021-09-02
申请号:US16803819
申请日:2020-02-27
Applicant: Oracle International Corporation
Inventor: Benjamin Schlegel , Martin Sevenich , Pit Fender , Matthias Brantner , Hassan Chafi
IPC: G06F16/901 , G06F9/38
Abstract: Techniques are described herein for a vectorized hash table that uses very efficient grow and insert techniques. A single-probe hash table is grown via vectorized instructions that split each bucket, of the hash table, into a respective upper and lower bucket of the expanded hash table. Further, vacant slots are indicated using a vacant-slot-indicator value, e.g., ‘0’, and all vacant slots follow to the right of all occupied slots in a bucket. A vectorized compare instruction determines whether a value is already in the bucket. If not, the vectorized compare instruction is also used to determine whether the bucket has a vacant slot based on whether the bucket contains the vacant-slot-indicator value. To insert the value into the bucket, vectorized instructions are used to shift the values in the bucket to the right by one slot and to insert the new value into the left-most slot.
-
公开(公告)号:US20210173621A1
公开(公告)日:2021-06-10
申请号:US16703499
申请日:2019-12-04
Applicant: Oracle International Corporation
Inventor: Pit Fender , Benjamin Schlegel , Matthias Brantner , Harshad Kasture , Hassan Chafi
Abstract: Herein are machine learning (ML) feature processing and analytic techniques to detect anomalies in parse trees of logic statements, database queries, logic scripts, compilation units of general-purpose programing language, extensible markup language (XML), JAVASCRIPT object notation (JSON), and document object models (DOM). In an embodiment, a computer identifies an operational trace that contains multiple parse trees. Values of explicit features are generated from a single respective parse tree of the multiple parse trees of the operational trace. Values of implicit features are generated from more than one respective parse tree of the multiple parse trees of the operational trace. The explicit and implicit features are stored into a same feature vector. With the feature vector as input, an ML model detects whether or not the operational trace is anomalous, based on the explicit features of each parse tree of the operational trace and the implicit features of multiple parse trees of the operational trace.
-
公开(公告)号:US20210042102A1
公开(公告)日:2021-02-11
申请号:US17069104
申请日:2020-10-13
Applicant: Oracle International Corporation
Inventor: Petr Koupy , Thomas Manhardt , Siegfried Depner , Sungpack Hong , Hassan Chafi
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.
-
公开(公告)号:US10896223B2
公开(公告)日:2021-01-19
申请号:US16223805
申请日:2018-12-18
Applicant: Oracle International Corporation
Inventor: Jinha Kim , Oskar Van Rest , Sungpack Hong , Hassan Chafi
IPC: G06F16/90 , G06F16/901 , G06F16/22 , G06F16/28
Abstract: Techniques herein optimize subgraph pattern matching. A computer receives a graph vertex array and a graph edge array. Each vertex and each edge has labels. The computer stores an array of index entries and an array of edge label sets. Each index entry corresponds to a respective vertex originating an edge and associates an offset of the edge with an offset of the respective vertex. Each edge label set contains labels of a respective edge. The computer selects a candidate subset of edges originating at a current vertex. The edge labels of each candidate edge of the candidate subset include a same particular query edge labels. The computer selects the candidate subset based on the index array and afterwards selects a result subset of vertices from among the terminating vertices of the candidate edges. The labels of each vertex of the result subset include a same particular query vertex labels.
-
公开(公告)号:US20200293332A1
公开(公告)日:2020-09-17
申请号:US16299483
申请日:2019-03-12
Applicant: Oracle International Corporation
Inventor: Benjamin Schlegel , Pit Fender , Harshad Kasture , Matthias Brantner , Hassan Chafi
Abstract: Techniques are provided for vectorizing Heapsort. A K-heap is used as the underlying data structure for indexing values being sorted. The K-heap is vectorized by storing values in a contiguous memory array containing a beginning-most side and end-most side. The vectorized Heapsort utilizes horizontal aggregation SIMD instructions for comparisons, shuffling, and moving data. Thus, the number of comparisons required in order to find the maximum or minimum key value within a single node of the K-heap is reduced resulting in faster retrieval operations.
-
20.
公开(公告)号:US20200133663A1
公开(公告)日:2020-04-30
申请号:US16176853
申请日:2018-10-31
Applicant: Oracle International Corporation
Inventor: Martijn Dwars , Martin Sevenich , Sungpack Hong , Hassan Chafi
Abstract: Techniques are described herein for automatic generation of multi-source breadth-first search (MS-BFS) from high-level graph processing language that can be executed in a distributed computing environment. In an embodiment, a method involves a computer analyzing original software instructions. The original software instructions are configured to perform multiple breadth-first searches to determine a particular result. Each breadth-first search originates at each of a subset of vertices of a graph. Each breadth-first search is encoded for independent execution. Based on the analyzing, the computer generates transformed software instructions configured to perform a MS-BFS to determine the particular result. Each of the subset of vertices is a source of the MS-BFS. In an embodiment, the second plurality of software instructions comprises a node iteration loop and a neighbor iteration loop, and the plurality of vertices of the distributed graph comprise active vertices and neighbor vertices. The node iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, and the node iteration loop is configured to determine the particular result. The neighbor iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, and each iteration of the neighbor iteration loop is configured to activate one or more neighbor vertices of the plurality of vertices for the following iteration of the neighbor iteration loop.
-
-
-
-
-
-
-
-
-