-
公开(公告)号:US10019536B2
公开(公告)日:2018-07-10
申请号:US14332182
申请日:2014-07-15
Applicant: Oracle International Corporation
Inventor: Sungpack Hong , Zhe Wu , Martin Sevenich , Jayanta Banerjee , Hassan Chafi , Korbinian Schmid
CPC classification number: G06F16/9024 , G06F16/2246 , G06F2201/80
Abstract: Techniques for storing and processing graph data in a database system are provided. Graph data (or a portion thereof) that is stored in persistent storage is loaded into memory to generate an instance of a particular graph. The instance is consistent as of a particular point in time. Graph analysis operations are performed on the instance. The instance may be used by multiple users to perform graph analysis operations. Subsequent changes to the graph are stored separate from the instance. Later, the changes may be applied to the instance (or a copy thereof) to refresh the instance.
-
22.
公开(公告)号:US10002205B2
公开(公告)日:2018-06-19
申请号:US14947382
申请日:2015-11-20
Applicant: Oracle International Corporation
Inventor: Nicholas Roth , Sungpack Hong , Siegfried Depner , Thomas Manhardt , Hassan Chafi
IPC: G06F17/30
CPC classification number: G06F16/9024 , G06F16/278
Abstract: Techniques herein index data transferred during distributed graph processing. In an embodiment, a system of computers divides a directed graph into partitions. The system creates one partition per computer and distributes each partition to a computer. Each computer builds four edge lists that enumerate edges that connect the partition of the computer with a partition of a neighbor computer. Each of the four edge lists has edges of a direction, which may be inbound or outbound from the partition. Edge lists are sorted by identifier of the vertex that terminates or originates each edge. Each iteration of distributed graph analysis involves each computer processing its partition and exchanging edge data or vertex data with neighbor computers. Each computer uses an edge list to build a compactly described range of edges that connect to another partition. The computers exchange described ranges with their neighbors during each iteration.
-
公开(公告)号:US09971570B2
公开(公告)日:2018-05-15
申请号:US14969231
申请日:2015-12-15
Applicant: Oracle International Corporation
Inventor: Martin Sevenich , Sungpack Hong , Hassan Chafi
IPC: G06F9/44
CPC classification number: G06F8/456
Abstract: Techniques generate memory-optimization logic for concurrent graph analysis. A computer analyzes domain-specific language logic that analyzes a graph having vertices and edges. The computer detects parallel execution regions that create thread locals. Each thread local is associated with a vertex or edge. For each parallel region, the computer calculates how much memory is needed to store one instance of each thread local. The computer generates instrumentation that determines how many threads are available and how many vertices and edges will create thread locals. The computer generates tuning logic that determines how much memory is originally needed for the parallel region based on how much memory is needed to store the one instance, how many threads are available, and graph size. The tuning logic detects a memory shortage based on the original amount of memory needed exceeding how much memory is available and accordingly adjusts the execution of the parallel region.
-
公开(公告)号:US09916187B2
公开(公告)日:2018-03-13
申请号:US14524838
申请日:2014-10-27
Applicant: Oracle International Corporation
Inventor: Korbinian Schmid , Martin Sevenich , Sungpack Hong , Hassan Chafi
CPC classification number: G06F9/5083 , G06F8/31 , G06F8/456 , G06F17/30321 , G06F17/30386 , G06F17/30442 , G06F17/30958 , H04L67/10
Abstract: Techniques are provided for a graph database system that accepts custom graph analytic programs that are written in a high-level graph-specific programming language and compiles the programs into executables that, when executed, directly access graph data of a graph that is stored in the graph database. In this way, a low-level data-access API is avoided. Also, a graph analytic program, which only describes an abstract description of an algorithm, does not include any details regarding data access. In one technique, a user is not required to include explicit parallelization in a graph analytic program in order for the graph analytic program to take advantage of parallelization. A compiler of the graph database system identifies portions of the graph analytic program that can benefit from parallelization and, in response, generates parallelized executable code that corresponds to those portions.
-
25.
公开(公告)号:US09740536B2
公开(公告)日:2017-08-22
申请号:US14718430
申请日:2015-05-21
Applicant: Oracle International Corporation
Inventor: Jan van der Lugt , Merijn Verstraaten , Sungpack Hong , Hassan Chafi
CPC classification number: G06F9/5083 , G06F8/31 , G06F8/456 , G06F17/30321 , G06F17/30386 , G06F17/30442 , G06F17/30958 , H04L67/10
Abstract: Techniques are provided for efficiently distributing graph data to multiple processor threads located on a server node. The server node receives graph data to be processed by the server node of a graph processing system. The received graph data is a portion of a larger graph to be processed by the graph processing system. In response to receiving graph data the server node compiles a list of vertices and attributes of each vertex from the graph data received. The server node then creates task chunks of work based upon the compiled list of vertices and their corresponding attribute data. The server node then distributes the task chunks to a plurality of threads available on the server node.
-
公开(公告)号:US20170169133A1
公开(公告)日:2017-06-15
申请号:US14969789
申请日:2015-12-15
Applicant: Oracle International Corporation
Inventor: Jinha Kim , Oskar Van Rest , Sungpack Hong , Hassan Chafi
IPC: G06F17/30
CPC classification number: G06F17/30958 , G06F17/30324
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.
-
公开(公告)号:US20150331683A1
公开(公告)日:2015-11-19
申请号:US14276895
申请日:2014-05-13
Applicant: Oracle International Corporation
Inventor: Martin Sevenich , Sungpack Hong , Hassan Chafi
IPC: G06F9/45
Abstract: An implementation of an abstract data type is automatically selected by a compiler. 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.
Abstract translation: 抽象数据类型的实现由编译器自动选择。 编译器根据程序中的实例执行的操作,在程序中为抽象数据类型的每个实例选择一个实现。
-
28.
公开(公告)号:US20140189665A1
公开(公告)日:2014-07-03
申请号:US13733424
申请日:2013-01-03
Applicant: ORACLE INTERNATIONAL CORPORATION
Inventor: Sungpack Hong , Hassan Chafi , Eric Sedlar
IPC: G06F9/45
CPC classification number: G06F8/443
Abstract: A method for performing a neighbor-flipping transformation is provided. In one embodiment, a graph analysis program for computing a function relating to nodes in a directed graph is obtained and analyzed for neighborhood iterating operations, in which a function is computed over sets of nodes in the graph. For any detected neighborhood iterating operation, the method transforms the iterating operation by reversing the neighbor node relationship between the nodes in the operation. The transformed operation computes the same value for the function as the operation prior to transformation. The method alters the neighbor node relationship automatically, so that a user does not have to recode the graph analysis program. In some cases, the method includes construction of edges in the reverse direction while retaining the original edges in addition to performing the transformation.
Abstract translation: 提供了一种执行相邻翻转变换的方法。 在一个实施例中,获得用于计算与有向图中的节点有关的功能的图分析程序,并对其进行邻域迭代操作进行分析,其中在图中的节点集合上计算函数。 对于任何检测到的邻域迭代操作,该方法通过在操作中颠倒节点之间的邻居节点关系来转换迭代操作。 转换的操作计算与变换之前的操作相同的函数值。 该方法自动更改邻居节点关系,使用户不必重新编码图形分析程序。 在某些情况下,除了执行变换之外,该方法还包括沿相反方向构造边缘,同时保留原始边缘。
-
公开(公告)号:US20250156637A1
公开(公告)日:2025-05-15
申请号:US18505293
申请日:2023-11-09
Applicant: Oracle International Corporation
Inventor: Cesare Bernardis , Damien Hilloulin , Rhicheek Patra , Sungpack Hong , Hassan Chafi
IPC: G06F40/284 , G06F16/9535
Abstract: In a computer-implemented embodiment, an interaction machine learning model is trained based on many interactions on many resources. A context lexical token is inferred that represents a current operational context of a user. The context lexical token is inserted into a sequence of other inferred lexical tokens. From the context lexical token within the sequence of tokens, the interaction machine learning model infers a predicted resource that will be accessed next. In an embodiment, accelerated matchmaking entails suitability measurement by a dot product of a) a dynamically inferred user embedding that is based on the context lexical token and b) a statically inferred item embedding.
-
公开(公告)号: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.
-
-
-
-
-
-
-
-
-