-
公开(公告)号:US20250094224A1
公开(公告)日:2025-03-20
申请号:US18369254
申请日:2023-09-18
Applicant: Oracle International Corporation
Inventor: Calin Iorgulescu , Martin Kucera , Vasileios Trigonakis , Arnaud Delamare , Petr Koupy , Jinsu Lee , Sungpack Hong , Hassan Chafi
Abstract: A resource manager tracks the amount of available memory for a cluster of machines and for each machine in the cluster. The resource manager receives a reservation request from a job for a graph processing operation. The reservation request specifies an identification of the job, a type of reservation, and an amount of memory requested. The resource manager determines whether to grant the reservation request based on the type of reservation, the amount of memory requested, and the amount of available memory in the cluster or in one or more machines in the cluster. In response to determining to grant the reservation request, the resource manager sends a response to the job indicating an amount of memory reserved and adjusts the amount of available cluster memory and the amount of available machine memory for at least one machine in the cluster based on the amount of memory reserved.
-
公开(公告)号:US11363093B2
公开(公告)日:2022-06-14
申请号:US15968637
申请日:2018-05-01
Applicant: Oracle International Corporation
Inventor: Jinsu Lee , Thomas Manhardt , Sungpack Hong , Petr Koupy , Hassan Chafi , Vasileios Trigonakis
IPC: H04L29/08 , G06F16/901 , H04L67/10
Abstract: Techniques are described herein for evaluating graph processing tasks using a multi-stage pipelining communication mechanism. In a multi-node system comprising a plurality of nodes, each node of said plurality of nodes executes a respective communication agent object. The respective communication agent object comprises: a sender lambda function is configured to perform sending operations and generate source messages based on the sender operations. An intermediate lambda function is configured to read source messages marked for a node, perform intermediate operations based on the source messages and generate intermediate messages based on the intermediate operations. A final receiver lambda function configured to: read intermediate messages marked for said each node, perform final operations based on the intermediate messages and generate a final result based on the final operations.
-
3.
公开(公告)号:US20190205178A1
公开(公告)日:2019-07-04
申请号:US16353050
申请日:2019-03-14
Applicant: ORACLE INTERNATIONAL CORPORATION
Inventor: Jinsu Lee , Sungpack Hong , Siegfried Depner , Nicholas Roth , Thomas Manhardt , Hassan Chafi
CPC classification number: G06F9/5066 , G06F9/546
Abstract: Techniques herein provide job control and synchronization of distributed graph-processing jobs. In an embodiment, a computer system maintains an input queue of graph processing jobs. In response to de-queuing a graph processing job, a master thread partitions the graph processing job into distributed jobs. Each distributed job has a sequence of processing phases. The master thread sends each distributed job to a distributed processor. Each distributed job executes a first processing phase of its sequence of processing phases. To the master thread, the distributed job announces completion of its first processing phase. The master thread detects that all distributed jobs have announced finishing their first processing phase. The master thread broadcasts a notification to the distributed jobs that indicates that all distributed jobs have finished their first processing phase. Receiving that notification causes the distributed jobs to execute their second processing phase. Queues and barriers provide for faults and cancellation.
-
公开(公告)号:US20190171490A1
公开(公告)日:2019-06-06
申请号:US16270135
申请日:2019-02-07
Applicant: Oracle International Corporation
Inventor: Thomas Manhardt , Sungpack Hong , Siegfried Depner , Jinsu Lee , Nicholas Roth , Hassan Chafi
Abstract: Techniques are provided for dynamically self-balancing communication and computation. In an embodiment, each partition of application data is stored on a respective computer of a cluster. The application is divided into distributed jobs, each of which corresponds to a partition. Each distributed job is hosted on the computer that hosts the corresponding data partition. Each computer divides its distributed job into computation tasks. Each computer has a pool of threads that execute the computation tasks. During execution, one computer receives a data access request from another computer. The data access request is executed by a thread of the pool. Threads of the pool are bimodal and may be repurposed between communication and computation, depending on workload. Each computer individually detects completion of its computation tasks. Each computer informs a central computer that its distributed job has finished. The central computer detects when all distributed jobs of the application have terminated.
-
公开(公告)号:US20170351551A1
公开(公告)日:2017-12-07
申请号:US15175920
申请日:2016-06-07
Applicant: Oracle International Corporation
Inventor: Thomas Manhardt , Sungpack Hong , Siegfried Depner , Jinsu Lee , Nicholas Roth , Hassan Chafi
IPC: G06F9/50
CPC classification number: G06F9/5061 , G06F9/5038 , G06F9/5066 , G06F9/5083 , G06F9/522 , H04L67/10
Abstract: Techniques are provided for dynamically self-balancing communication and computation. In an embodiment, each partition of application data is stored on a respective computer of a cluster. The application is divided into distributed jobs, each of which corresponds to a partition. Each distributed job is hosted on the computer that hosts the corresponding data partition. Each computer divides its distributed job into computation tasks. Each computer has a pool of threads that execute the computation tasks. During execution, one computer receives a data access request from another computer. The data access request is executed by a thread of the pool. Threads of the pool are bimodal and may be repurposed between communication and computation, depending on workload. Each computer individually detects completion of its computation tasks. Each computer informs a central computer that its distributed job has finished. The central computer detects when all distributed jobs of the application have terminated.
-
6.
公开(公告)号:US20250139163A1
公开(公告)日:2025-05-01
申请号:US18384248
申请日:2023-10-26
Applicant: Oracle International Corporation
Inventor: Jonas Schweizer , Arnaud Delamare , Jinsu Lee , Sungpack Hong , Hassan Chafi , Vasileios Trigonakis
IPC: G06F16/901 , G06F11/32
Abstract: An estimator is provided that can be used to get an estimate of final graph size and peak memory usage of the graph during loading, based on sampling of the graph data and using machine learning (ML) techniques. A data sampler samples the data from files or databases and estimates some statistics about the final graph. The sampler also samples some information about property data. Given the sampled statistics gathered and estimated by the data sampler, a graph size estimator estimates how much memory is required by the graph processing engine to load the graph. The final graph size represents how much memory will be used to keep the final graph structures in memory once loading is completed. The peak memory usage represents the memory usage upper bound that is reached by the graph processing engine during loading.
-
公开(公告)号:US11030014B2
公开(公告)日:2021-06-08
申请号:US16270135
申请日:2019-02-07
Applicant: Oracle International Corporation
Inventor: Thomas Manhardt , Sungpack Hong , Siegfried Depner , Jinsu Lee , Nicholas Roth , Hassan Chafi
IPC: G06F9/50 , H04L29/08 , G06F9/52 , G06F16/901 , G06F11/34
Abstract: Techniques are provided for dynamically self-balancing communication and computation. In an embodiment, each partition of application data is stored on a respective computer of a cluster. The application is divided into distributed jobs, each of which corresponds to a partition. Each distributed job is hosted on the computer that hosts the corresponding data partition. Each computer divides its distributed job into computation tasks. Each computer has a pool of threads that execute the computation tasks. During execution, one computer receives a data access request from another computer. The data access request is executed by a thread of the pool. Threads of the pool are bimodal and may be repurposed between communication and computation, depending on workload. Each computer individually detects completion of its computation tasks. Each computer informs a central computer that its distributed job has finished. The central computer detects when all distributed jobs of the application have terminated.
-
公开(公告)号:US10990595B2
公开(公告)日:2021-04-27
申请号:US16274210
申请日:2019-02-12
Applicant: Oracle International Corporation
Inventor: Nicholas Roth , Sungpack Hong , Petr Koupy , Jinsu Lee , Vasileios Trigonakis , Abderrahmane Melhaoui , Stefan Kaestle
IPC: G06F16/00 , G06F16/2453 , G06F16/901 , G06F16/27
Abstract: Techniques are described herein for asynchronous execution of queries on statically replicated graph data. In an embodiment, a graph is partitioned among a plurality of computers executing the graph querying engine. One or more high-degree vertices of the graph are each replicated in each graph partition. The partitions, including the replicated high-degree vertices, are loaded in memory of the plurality of computers. To execute a query, a query plan is generated based on the query. The query plan specifies a plurality of operators and an order for the plurality of operators. The order is such that if an operator requires data generated by another operator, then the other operator is ordered before the operator in the query plan. Replicated copies of a vertex is visited if matches made by subsequent operator(s) are limited by data unique to the replicated vertices.
-
公开(公告)号:US10754700B2
公开(公告)日:2020-08-25
申请号:US16353050
申请日:2019-03-14
Applicant: ORACLE INTERNATIONAL CORPORATION
Inventor: Jinsu Lee , Sungpack Hong , Siegfried Depner , Nicholas Roth , Thomas Manhardt , Hassan Chafi
Abstract: Techniques herein provide job control and synchronization of distributed graph-processing jobs. In an embodiment, a computer system maintains an input queue of graph processing jobs. In response to de-queuing a graph processing job, a master thread partitions the graph processing job into distributed jobs. Each distributed job has a sequence of processing phases. The master thread sends each distributed job to a distributed processor. Each distributed job executes a first processing phase of its sequence of processing phases. To the master thread, the distributed job announces completion of its first processing phase. The master thread detects that all distributed jobs have announced finishing their first processing phase. The master thread broadcasts a notification to the distributed jobs that indicates that all distributed jobs have finished their first processing phase. Receiving that notification causes the distributed jobs to execute their second processing phase. Queues and barriers provide for faults and cancellation.
-
公开(公告)号:US20190354526A1
公开(公告)日:2019-11-21
申请号:US16274210
申请日:2019-02-12
Applicant: Oracle International Corporation
Inventor: Nicholas Roth , Sungpack Hong , Petr Koupy , Jinsu Lee , Vasileios Trigonakis , Abderrahmane Melhaoui , Stefan Kaestle
IPC: G06F16/2453 , G06F16/27 , G06F16/901
Abstract: Techniques are described herein for asynchronous execution of queries on statically replicated graph data. In an embodiment, a graph is partitioned among a plurality of computers executing the graph querying engine. One or more high-degree vertices of the graph are each replicated in each graph partition. The partitions, including the replicated high-degree vertices, are loaded in memory of the plurality of computers. To execute a query, a query plan is generated based on the query. The query plan specifies a plurality of operators and an order for the plurality of operators. The order is such that if an operator requires data generated by another operator, then the other operator is ordered before the operator in the query plan. Replicated copies of a vertex is visited if matches made by subsequent operator(s) are limited by data unique to the replicated vertices.
-
-
-
-
-
-
-
-
-