-
131.
公开(公告)号:US11360976B2
公开(公告)日:2022-06-14
申请号:US16117367
申请日:2018-08-30
Applicant: Oracle International Corporation
Inventor: Matthias Brantner , Laurent Daynes , Pit Fender , Benjamin Schlegel , Anantha Kiran Kandukuri , Hassan Chafi , Eric Sedlar , Juergen Christ , Lucas Braun , Bastian Hossbach , Alexander Ulrich , Harshad Kasture
IPC: G06F16/2453 , G06F16/2455
Abstract: Herein are computerized techniques for deploying JavaScript and TypeScript stored procedures and user-defined functions into a database management system (DBMS). In an embodiment, a computer generates a SQL call specification for each subroutine of one or more subroutines encoded in a scripting language. The generating is based on a signature declaration of the subroutine. Each subroutine comprises a definition of a stored procedure or a user-defined function. The computer packages the definition and the SQL call specification of each subroutine into a single bundle file. The definition and the SQL call specification of each subroutine are deployed into a DBMS from the single bundle file. Eventually, the SQL call specification of at least one subroutine is invoked to execute the definition of the subroutine in the DBMS.
-
公开(公告)号: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.
-
公开(公告)号:US11294894B2
公开(公告)日:2022-04-05
申请号:US16556760
申请日:2019-08-30
Applicant: Oracle International Corporation
Inventor: Pit Fender , Harshad Kasture , Alexander Ulrich , Benjamin Schlegel , Matthias Brantner , Hassan Chafi
IPC: G06F16/24 , G06F16/242 , G06F16/25 , G06F8/30
Abstract: Herein are techniques that extend a software system to embed new guest programing languages (GPLs) that interoperate in a transparent, modular, and configurable way. In embodiments, a computer inserts an implementation of a GPL into a deployment of the system. A command registers the GPL, define subroutines for the GPL, generates a guest virtual environment, and adds a binding of a dependency to a guest module. In an embodiment, a native programing language invokes a guest programing language to cause importing intra- or inter-language dependencies. An embodiment defines a guest object that is implemented in a first GPL and accessed from a second GPL. In an embodiment, dependencies are retrieved from a virtual file system having several alternative implementation mechanisms that include: an archive file or an actual file system, and a memory buffer or a column of a database table.
-
公开(公告)号:US11222070B2
公开(公告)日:2022-01-11
申请号:US16803819
申请日:2020-02-27
Applicant: Oracle International Corporation
Inventor: Benjamin Schlegel , Martin Sevenich , Pit Fender , Matthias Brantner , Hassan Chafi
IPC: G06F16/00 , 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.
-
公开(公告)号:US11210224B2
公开(公告)日:2021-12-28
申请号:US16714111
申请日:2019-12-13
Applicant: Oracle International Corporation
Inventor: Sungpack Hong , Hassan Chafi , Eric Sedlar
IPC: G06F12/0837 , G06F12/0808
Abstract: Techniques are provided for performing a flush operation in a non-coherent cache. In response to determining to perform a flush operation, a cache unit flushes certain data items. The flush operation may be performed in response to a lapse of a particular amount of time, such as a number of cycles, or an explicit flush instruction that does not indicate any cache entry or data item. The cache unit may store change data that indicates which entry stores a data item that has been modified but not yet been flushed. The change data may be used to identify the entries that need to be flushed. In one technique, a dirty cache entry that is associated with one or more relatively recent changes is not flushed during a flush operation.
-
公开(公告)号:US11120082B2
公开(公告)日:2021-09-14
申请号:US15956115
申请日:2018-04-18
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.
-
公开(公告)号:US20210240456A1
公开(公告)日:2021-08-05
申请号:US16776792
申请日:2020-01-30
Applicant: Oracle International Corporation
Inventor: Martijn Dwars , Martin Sevenich , Sungpack Hong , Hassan Chafi , Guido Wachsmuth
Abstract: Techniques are described for compiling source code to generate graph-optimized intermediate representation instructions of the source code that implement techniques for optimizing algorithms for graph analysis. A compiler, executing on a computing device, receives source code instructions for a program to be compiled. The compiler identifies a target expression, within the source code instructions, that invokes a particular method call on a particular object type. The target expression contains a target block of code to be translated into an intermediate representation using graph-optimized compilation techniques. The compiler generates a block of graph-specific intermediate representation instructions to replace the target expression. The compiler compiles the source code instructions to generate intermediate representation instructions, where the intermediate representation instructions include the block of graph-specific intermediate representation instructions in place of the target expression.
-
公开(公告)号:US11068538B2
公开(公告)日:2021-07-20
申请号:US16265090
申请日:2019-02-01
Applicant: Oracle International Corporation
Inventor: Michael Haubenschild , Sungpack Hong , Hassan Chafi , Korbinian Schmid , Martin Sevenich , Alexander Weld
IPC: G06F16/00 , G06F16/901 , G06F16/28
Abstract: Techniques herein are for navigation data structures for graph traversal. In an embodiment, navigation data structures that a computer stores include: a source vertex array of vertices; a neighbor array of dense identifiers of target vertices terminating edges; a bidirectional map associating, for each vertex, a sparse identifier of the vertex with a dense identifier of the vertex; and a vertex array containing, when a dense identifier of a source vertex is used as an offset, a pair of offsets defining an offset range, for use with the neighbor array. The source vertex array, using the dense identifier of a particular vertex as an offset, contains an offset, into a neighbor array, of a target vertex terminating an edge originating at the particular vertex. The neighbor array contiguously stores dense identifiers of target vertices terminating edges originating from a same source vertex.
-
公开(公告)号:US11016778B2
公开(公告)日:2021-05-25
申请号: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.
-
-
-
-
-
-
-
-
-