-
公开(公告)号:US20200257982A1
公开(公告)日:2020-08-13
申请号:US16270535
申请日:2019-02-07
Applicant: Oracle International Corporation
Inventor: Jinha Kim , Rhicheek Patra , Sungpack Hong , Damien Hilloulin , Davide Bartolini , Hassan Chafi
Abstract: Techniques are described herein for encoding categorical features of property graphs by vertex proximity. In an embodiment, an input graph is received. The input graph comprises a plurality of vertices, each vertex of said plurality of vertices is associated with vertex properties of said vertex. The vertex properties include at least one categorical feature value of one or more potential categorical feature values. For each of the one or more potential categorical feature values of each vertex, a numerical feature value is generated. The numerical feature value represents a proximity of the respective vertex to other vertices of the plurality of vertices that have a categorical feature value corresponding to the respective potential categorical feature value. Using the numerical feature values for each vertex, proximity encoding data is generated representing said input graph. The proximity encoding data is used to efficiently train machine learning models that produce results with enhanced accuracy.
-
公开(公告)号:US20200097288A1
公开(公告)日:2020-03-26
申请号:US16139226
申请日:2018-09-24
Applicant: Oracle International Corporation
Inventor: Benjamin Schlegel , Harshad Kasture , Pit Fender , Matthias Brantner , Hassan Chafi
Abstract: Techniques for maintaining d-heap property and speeding up retrieval operations, such as top or pop, by vectorizing the d-heap and utilizing horizontal aggregation SIMD instructions across the retrieval operations. A d-heap is vectorized by storing it in a contiguous memory array containing a beginning-most side and end-most side. Horizontal aggregation SIMD instructions are utilized to aggregate the values of the vectorized d-heap. Thus, the number of comparisons required in order to find the maximum or minimum key value within a single node of the d-heap is reduced resulting in faster retrieval operations.
-
93.
公开(公告)号:US10585945B2
公开(公告)日:2020-03-10
申请号:US15666310
申请日:2017-08-01
Applicant: Oracle International Corporation
Inventor: Martin Sevenich , Sungpack Hong , Alexander Weld , Hassan Chafi , Martijn Dwars
IPC: G06F17/30 , G06F16/901 , G06F8/30 , G06F8/41 , G06F16/2453 , G06F8/34
Abstract: Techniques herein generate, such as during compilation, polymorphic dispatch logic (PDL) to switch between specialized implementations of a polymorphic graph algorithm. In an embodiment, a computer detects, within source logic of a graph algorithm, that the algorithm processes an instance of a generic graph type. The computer generates several alternative implementations of the algorithm. Each implementation is specialized to process the graph instance as an instance of a respective graph subtype. The computer generates PDL that performs dynamic dispatch as follows. At runtime, the PDL receives a graph instance of the generic graph type. The PDL detects which particular graph subtype is the graph instance. The PDL then invokes whichever alternative implementation that is specialized to process the graph instance as an instance of the detected particular graph subtype. In embodiments, the source logic is expressed in a domain specific language (DSL), e.g. for analysis, traversal, or querying of graphs.
-
公开(公告)号:US20190377589A1
公开(公告)日:2019-12-12
申请号:US16006668
申请日:2018-06-12
Applicant: Oracle International Corporation
Inventor: Bastian Hossbach , Jürgen Christ , Laurent Daynes , Matthias Brantner , Hassan Chafi , Christian Humer
Abstract: Computer-implemented techniques described herein provide efficient data decoding using runtime specialization. In an embodiment, a method comprises a virtual machine executing a body of code of a dynamically typed language, wherein executing the body of code includes: querying a relational database, and in response to the query, receiving table metadata indicating data types of one or more columns of a first table in the relational database. In response to receiving the table metadata: for a first column of the one or more columns, generating decoding machine code to decode the first column based on the data type of the first column, and executing the decoding machine code to decode the first column of the one or more columns.
-
95.
公开(公告)号:US10339179B2
公开(公告)日:2019-07-02
申请号:US15096034
申请日:2016-04-11
Applicant: Oracle International Corporation
Inventor: Siham Yousfi , Sungpack Hong , Alexander Weld , Korbinian Schmid , Hassan Chafi
IPC: G06F16/90 , G06F16/901 , G06F16/25 , G06F16/84 , G06F16/903
Abstract: Techniques are provided for mapping tables and columns of a legacy relational schema into synthetic tables that are dedicated for graph analysis. In an embodiment, a computer receives a mapping of relational tables to node tables and edge tables. The node tables contain columns and rows. The edge tables contain columns and rows. The rows of the node tables and the rows of the edge tables define a graph. Based on the mapping and the relational tables, the computer calculates a value of at least one column of at least one row of the node tables. Based on an execution of a query of the graph, the computer returns the value.
-
96.
公开(公告)号:US20190163704A1
公开(公告)日:2019-05-30
申请号:US16265090
申请日:2019-02-01
Applicant: Oracle International Corporation
Inventor: Michael Haubenschild , Sungpack Hong , Hassan Chafi , Korbinian Schmid , Martin Sevenich , Alexander Weld
IPC: 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.
-
公开(公告)号:US20190102154A1
公开(公告)日:2019-04-04
申请号:US15721848
申请日:2017-09-30
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.
-
公开(公告)号:US10228920B2
公开(公告)日:2019-03-12
申请号:US14276895
申请日:2014-05-13
Applicant: Oracle International Corporation
Inventor: Martin Sevenich , Sungpack Hong , Hassan Chafi
Abstract: An implementation of an abstract data type is automatically selected by a compiler of high-level language source code. The compiler chooses an implementation for each instance of an abstract data type in a program based on operations performed in the instance within the program. The compiler rewrites and compiles the high-level language source code in response to selecting the implementation.
-
99.
公开(公告)号:US20180315228A1
公开(公告)日:2018-11-01
申请号:US15581820
申请日:2017-04-28
Applicant: Oracle International Corporation
Inventor: Jan Boettcher , Alexander Weld , Korbinian Schmid , Sungpack Hong , Hassan Chafi
Abstract: Techniques are provided for strategy-based graph simplification. In an embodiment, a computer provides configurable strategies that simplify edges of a graph. A client selects and configures a strategy subset of the configurable strategies to define a particular simplification scheme. The computer simplifies a graph by applying the strategy subset to the graph. In embodiments, predefined classes or other application programming interface (API) is provided to clients to obtain and customize strategy instances, such as with a factory or builder. Strategy instances may be imperative or declarative. A service implementation, such as a graph engine, may be embedded or remoted. Techniques herein provide for reuse and optimization.
-
公开(公告)号:US10055509B2
公开(公告)日:2018-08-21
申请号:US14680150
申请日:2015-04-07
Applicant: Oracle International Corporation
Inventor: Sungpack Hong , Zhe Wu , Korbinian Schmid , Felix Kaser , Martin Sevenich , Hassan Chafi , Jayanta Banerjee
CPC classification number: G06F16/9024 , G06F16/2246 , G06F2201/80
Abstract: Techniques for efficiently loading graph data into memory are provided. A plurality of node ID lists are retrieved from storage. Each node ID list is ordered based on one or more order criteria, such as node ID, and is read into memory. A new list of node IDs is created in memory and is initially empty. From among the plurality of node ID lists, a particular node ID is selected based on the one or more order criteria, removed from the node ID list where the particular node ID originates, and added to the new list. This process of selecting, removing, and adding continues until no more than one node ID list exists, other than the new list. In this way, the retrieval of the plurality of node ID lists from storage may be performed in parallel while the selecting and adding are performed sequentially.
-
-
-
-
-
-
-
-
-