IP Library › Granted Patent US 12,361,068
Granted Patent B2
US 12,361,068 · App. 18/593,663 · Granted Jul 15, 2025

Distributed multi-hop neighborhood extraction for graph machine-learning via push-lazy-push-traversal

Inventors: Vasileios Trigonakis (Zurich, CH); Lukas Kapp-Schwoerer (Redwood City, CA); Jonas Schweizer (Schlieren, CH); Arnaud Delamare (Zurich, CH); Damien Hilloulin (Zurich, CH); Vlad Ioan Haprian (Zurich, CH); Sungpack Hong (Palo Alto, CA)
Assignee: Oracle International Corporation
G06F16/9024G06F16/278
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,361,068
App. No.
18/593,663
Granted
Jul 15, 2025
Kind
B2
Abstract

A sampling procedure is performed for paths on a multi-hop distributed graph that includes vertices partitioned on a plurality of machines; a sampled path includes first and second vertices hosted on first and second machines respectively. The sampling procedure includes communicating, by the first machine to the second machine, first path information comprising an identifier for the second vertex and an identifier for a target vertex of the sampled path; the target vertex is hosted on a target host machine. The procedure further includes communicating edge information by the first machine to the target host machine, and communicating feature information by the second machine to the target host machine. Communication of the edge information and communication of the feature information are deferred relative to communication of the first path information.

Claims (42)

1. A computer-implemented method comprising:

performing a sampling procedure for paths on a multi-hop distributed graph, the graph including a plurality of vertices partitioned on a plurality of machines, a sampled path comprising a first vertex hosted on a first machine of the plurality of machines and a second vertex hosted on a second machine of the plurality of machines and neighboring the first vertex, the sampling procedure including:

communicating, by the first machine to the second machine, first path information comprising an identifier for the second vertex and an identifier for a target vertex of the sampled path, the target vertex hosted on a target host machine of the plurality of machines;

storing, by the first machine in a first data structure, a first indication that communication of edge information regarding the first vertex and the second vertex is required;

storing, by the second machine in a second data structure, a second indication that communication of feature information regarding the second vertex is required;

communicating, by the first machine to the target host machine, the edge information; and

communicating, by the second machine to the target host machine, the feature information;

wherein communication of the edge information and communication of the feature information are deferred to a lazy push stage that occurs after communication of the first path information.

2. The computer-implemented method according to claim 1 , wherein at least one of the communication of the edge information and the communication of the feature information is performed subsequent to communication of the first path information.

3. The computer-implemented method according to claim 1 , wherein at least one of the communication of the edge information and the communication of the feature information is performed asynchronously with respect to communication of the first path information.

4. The computer-implemented method according to claim 1 , wherein the first vertex is the target vertex of the sampled path.

5. The computer-implemented method according to claim 1 , wherein the feature information is extracted from the graph.

6. The computer-implemented method according to claim 1 , wherein the feature information is extracted from a distributed key-value store.

7. The computer-implemented method according to claim 1 , wherein the sampling procedure is performed in accordance with a sampling configuration.

8. The computer-implemented method according to claim 1 , wherein the target host machine assembles a data batch based on the sampled path, the feature information and the edge information.

9. The computer-implemented method according to claim 8 , further comprising training a graph machine learning (ML) model based on the data batch.

10. A non-transitory computer-readable medium comprising instructions executable by a processor to perform a sampling procedure for paths on a distributed graph, the graph including a plurality of vertices partitioned on a plurality of machines, a sampled path comprising a first vertex hosted on a first machine of the plurality of machines and a second vertex hosted on a second machine of the plurality of machines and neighboring the first vertex, the sampling procedure including:

communicating, by the first machine to the second machine, first path information comprising an identifier for the second vertex and an identifier for a target vertex of the sampled path, the target vertex hosted on a target host machine of the plurality of machines;

storing, by the first machine in a first data structure, a first indication that communication of edge information regarding the first vertex and the second vertex is required;

storing, by the second machine in a second data structure, a second indication that communication of feature information regarding the second vertex is required;

communicating, by the first machine to the target host machine, the edge information; and

communicating, by the second machine to the target host machine, the feature information;

wherein communication of the edge information and communication of the feature information are deferred to a lazy push stage that occurs after communication of the first path information.

11. The non-transitory computer-readable medium of claim 10 , wherein at least one of the communication of the edge information and the communication of the feature information is performed subsequent to communication of the first path information.

12. The non-transitory computer-readable medium of claim 10 , wherein at least one of the communication of the edge information and the communication of the feature information is performed asynchronously with respect to communication of the first path information.

13. The non-transitory computer-readable medium of claim 10 , wherein the first vertex is the target vertex of the sampled path.

14. The non-transitory computer-readable medium of claim 10 , wherein the sampling procedure is performed in accordance with a sampling configuration.

15. The non-transitory computer-readable medium of claim 10 , wherein the target host machine assembles a data batch based on the sampled path, the feature information and the edge information, and wherein the instructions further comprise instructions for training a graph machine learning (ML) model based on the data batch.

16. A system comprising:

a processor; and

a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, the operations comprising:

performing a sampling procedure for paths on a multi-hop distributed graph, the graph including a plurality of vertices hosted on a plurality of machines, a sampled path comprising a first vertex hosted on a first machine of the plurality of machines and a second vertex hosted on a second machine of the plurality of machines and neighboring the first vertex, the sampling procedure including:

communicating, by the first machine to the second machine, first path information comprising an identifier for the second vertex and an identifier for a target vertex of the sampled path, the target vertex hosted on a target host machine of the plurality of machines;

storing, by the first machine in a first data structure, a first indication that communication of edge information regarding the first vertex and the second vertex is required;

storing, by the second machine in a second data structure, a second indication that communication of feature information regarding the second vertex is required;

communicating, by the first machine to the target host machine, the edge information; and

communicating, by the second machine to the target host machine, the feature information;

wherein communication of the edge information and communication of the feature information are deferred to a lazy push stage that occurs after communication of the first path information.

17. The system of claim 16 , wherein at least one of the communication of the edge information and the communication of the feature information is performed subsequent to communication of the first path information.

18. The system of claim 16 , wherein at least one of the communication of the edge information and the communication of the feature information is performed asynchronously with respect to communication of the first path information.

19. The system of claim 16 , wherein the first vertex is the target vertex of the sampled path.

20. The system of claim 16 , wherein the target host machine assembles a data batch based on the sampled path, the feature information and the edge information, and wherein the operations further comprise training a graph machine learning (ML) model based on the data batch.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2024
From: TRIGONAKIS, VASILEIOS; KAPP-SCHWOERER, LUKAS; SCHWEIZER, JONAS; DELAMARE, ARNAUD; HILLOULIN, DAMIEN; HAPRIAN, VLAD IOAN; HONG, SUNGPACK
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 067238/0073 →
Continuity (2)
Provisional Application 63612132 · Dec 19, 2023
Related Publication 20250200109A1 · Jun 19, 2025
References Cited (86)
US 8234233B2 · Zhou · 2012 [cited by applicant]
US 8543517B2 · Shotton · 2013 [cited by applicant]
US 9135565B1 · Khalefa · 2015 [cited by applicant]
US 10140336B1 · Gu · 2018 [cited by applicant]
US 11194815B1 · Kumar · 2021 [cited by applicant]
US 11675785B2 · Trigonakis et al. · 2023 [cited by applicant]
US 20050015511A1 · Izmailov · 2005 [cited by applicant]
US 20050097078A1 · Lohman · 2005 [cited by applicant]
US 20120109889A1 · Wu · 2012 [cited by applicant]
US 20120209886A1 · Henderson · 2012 [cited by applicant]
US 20130097599A1 · Konik · 2013 [cited by applicant]
US 20140067793A1 · Shironoshita · 2014 [cited by applicant]
US 20140108414A1 · Stillerman · 2014 [cited by applicant]
US 20150089514A1 · Grewal · 2015 [cited by applicant]
US 20150193500A1 · Aute · 2015 [cited by applicant]
US 20150261817A1 · Harris · 2015 [cited by applicant]
US 20160306896A1 · Paradies · 2016 [cited by applicant]
US 20170091246A1 · Risvik · 2017 [cited by applicant]
US 20170116271A1 · Ziauddin · 2017 [cited by applicant]
US 20170118042A1 · Bhattacharya · 2017 [cited by applicant]
US 20170139991A1 · Teletia · 2017 [cited by applicant]
US 20180046675A1 · Zhou · 2018 [cited by applicant]
US 20180157978A1 · Buda · 2018 [cited by applicant]
US 20180329958A1 · Choudhury · 2018 [cited by applicant]
US 20190384765A1 · White · 2019 [cited by applicant]
US 20200380032A1 · Wills et al. · 2020 [cited by applicant]
US 20200401625A1 · Wright · 2020 [cited by applicant]
US 20210049171A1 · Ziauddin · 2021 [cited by applicant]
US 20210049209A1 · Shi · 2021 [cited by examiner]
US 20210089580A1 · Deng · 2021 [cited by applicant]
US 20210191941A1 · Petride · 2021 [cited by applicant]
US 20210240705A1 · Trigonakis · 2021 [cited by applicant]
US 20210365457A1 · Venema et al. · 2021 [cited by applicant]
US 20220179859A1 · Faltin et al. · 2022 [cited by applicant]
EP 2743845 · 2014 [cited by applicant]
David et al., “Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures”, ASPLOS 2015, http://dx.doi.org/10.1145/2694344.2694359, dated Mar. 2015, 14 pages. [cited by applicant]
Labouseur et al., “The G* Graph Database: Efficiently Managing Large Distributed Dynamic Graphs”, Springer Science+Business Media, Distrib Parallel Databases, DOI: 10.1007/s10619-014-7140-3, dated Mar. 2014, 36 pages. [cited by applicant]
Kim et al., “TurboFlux: A Fast Continuous Subgraph Matching System for Streaming Graph Data”, SIGMOD 2018, DOI: https://doi.org/10.1145/3183713.3196917, dated Jun. 2018, 16 pages. [cited by applicant]
Khandelwal et al., “ZipG: A Memory-Efficient Graph Store for Interactive Queries”, SIGMOD 2017, DOI: http://dx.doi.org/10.1145/3035918.3064012, dated May 2017, 16 pages. [cited by applicant]
Kankanamge et al., “Graphflow: An Active Graph Database”, SIGMOD 2017, DOI: http://dx.doi.org/10.1145/3035918.3056445, dated May 2017, 4 pages. [cited by applicant]
Iyer et al., “ASAP: Fast, Approximate Graph Pattern Mining at Scale”, Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation, https://www.usenix.org/conference/osdi18/presentation/iyer, … [cited by applicant]
Hong et al., “Pgx.D: A Fast Distributed Graph Processing Engine”, High Performance Computing, Networking and Storage Conference, SC 2015, DOI: http://dx.org/10.1145/2807591.2807620, dated Nov. 2015, 12 pages. [cited by applicant]
Abdelaziz et al., “Combining Vertex-Centric Graph Processing with SPARQL for Large-Scale RDF Data Analytics”, IEEE Transactions on Parallel and Distributed Systems, http://dx.doi.org/10.1109/TPDS.2017.2720174, dated 201… [cited by applicant]
Dekel et al., “Cachesensitive Optimization of Immutable Graph Taversals (CS745 Project Report)”, ACM, dated 2015, 9 pages. [cited by applicant]
Ma et al., “G-SQL: Fast Query Processing via Graph Exploration”, Proceedings of the VLDB Endowment, vol. 9, No. 12, DOI: 2150-8097/16/08, dated 2016, 12 pages. [cited by applicant]
Dave et al., GraphFrames: An Integrated API for Mixing Graph and Relational Queries, GRADES 2016, DOI: http://dx.doi.org/10.1145/2960414.2960416, dated Jun. 2016, 8 pages. [cited by applicant]
Cong et al., “Solving Large, Irregular Graph Problems using Adaptive Work-stealing”, dated 2008, 10 pages. [cited by applicant]
Chen et al., “G-Minor: An Efficient Task-Oriented Graph Mining System”, EuroSys 2018, Association for Computing Machinery, https://doi.org/10.1145/3190508.3190545, dated Apr. 2018, 12 pages. [cited by applicant]
Buleon, “OrientDB—The Multi-Model and Graph Database”, Info-H-415: Advanced Databases, http://orientdb.com/docs/last/index.html, dated 2017, 20 pages. [cited by applicant]
Boncz et al., Breaking the Memory Wall in MonetDB, Communications of the ACM, vol. 15, No. 12, dated Dec. 2008, 9 pages. [cited by applicant]
Azure Cosmos DB, “Fast NoSQL Database with Open APIs for any Scale”, https://azure.microsoft.com/en-gb/services/cosmos-db, dated 2018, 20 pages. [cited by applicant]
Dubey et al., “Weaver: A High-Performance, Transactional Graph Database Based on Refinable Timestamps”, Proceedings of the VLDB Endowmwnt, vol. 9, No. 11, https://arxiv.org/pdf/1509.08443.pdf, dated 2016, 12 pages. [cited by applicant]
Shao et al., “Trinity Graph Engine and its Applications”, Bulletin of the IEEE Computer Society Technical Committee on Data Engineering, https://www.graphengine.io/downloads/papers/TrinityAndApps.pdf, dated 2017, 12 pag… [cited by applicant]
Zaharia et al., “Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing”, 9th USENIX Symposium on Networked Systems Design and Implementation, dated Apr. 2012, 14 pages. [cited by applicant]
Yan et al., “A General-Purpose Query-Centric Framework for Querying Big Graphs”, Proceedings of the VLDB Endowment, vol. 9, No. 7, https://dl.acm.org/doi/abs/10.14778/2904483.2904488, dated 2016, 12 pages. [cited by applicant]
Virtuoso Universal Server, “Data-Driven Agility without Compromise”, http://virtuoso.openlinksw.com, dated 2019, 10 pages. [cited by applicant]
Titan.thinkaurelius.com, Chapter 3: Getting Started, s3.thinkaurelius.com/docs/titan/1.0.0/getting-started.html, dated 2015, 8 pages. [cited by applicant]
The Linux Foundation, “JanusGraph”, https://docs.janusgraph.org, dated 2020, 3 pages. [cited by applicant]
Spyropoulos et al., “Digree: Building A Distributed Graph Processing Engine out of Single-Node Graph Database Installations”, SIGMOD Record—vol. 46, No. 4, https://dl.acm.org/doi/abs/10.1145/3186549.3186555, dated 2017,… [cited by applicant]
Lumsdaine et al., “Challenges in Parallel Graph Processing”, World Scientific Publishing Company, Parallel Processing Letters, dated Jan. 2007, 16 pages. [cited by applicant]
Shao et al., “Trinity: A Distributed Graph Engine on a Memory Cloud”, SIGMOD 2013, https://dl.acm.org/doi/abs/10.1145/2463676.2467799, dated Jun. 2013, 12 pages. [cited by applicant]
Lyu et al., “DBL: Reachability Queries on Dynamic Graphs”, Technical Report, dated Jan. 4, 2019, 27 pages. [cited by applicant]
Sarwat et al., “Horton+: A Distributed System for Processing Declarative Reachability Queries over Partitioned Graphs”, Proceedings of the VLDB Endowment, vol. 6, No. 14, https://dl.acm.org/doi/abs/10.14778/2556549.2556… [cited by applicant]
Priya et al., “A Survey on Realizing Memory-Optimized Distributed Graph Processing”, IOSR Journal of Engineering (IOSRJEN), vol. 8, Issue 8 dated Aug. 2018, 7 pages. [cited by applicant]
Page et al., “The PageRank Citation Ranking: Bringing Order to the Web”, http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf, dated Jan. 1998, 17 pages. [cited by applicant]
Openquery.com, “OQGRAPH Engine for MariaDB”, https://openquery.com.au/products/graph-engine, dated Apr. 2008, 4 pages. [cited by applicant]
Müller, “Engineering Aggregation Operators for Relational In-Memory Database Systems”, Karlsruhe Institute of Technology, Germany, dated 2016, 197 pages. [cited by applicant]
Microsoft Graph Engine, “Graph Engine: Serving Big Graphs in Real-Time”, https://www.graphengine.io, dated 2017, 2 pages. [cited by applicant]
Zhang et al., “REGTT: Accelerating Tree Traversals on GPUs by Exploiting Regularities”, dated 2016, 10 pages. [cited by applicant]
Sharma, “Dragon: A Distributed Graph Query Engine”, Facebook Engineering, https://code.fb.com/datainfrastructure/dragon-a-distributed-graph-query-engine, dated Mar. 2016, 7 pages. [cited by applicant]
Faltin, U.S. Appl. No. 18/073,629, filed Dec. 2, 2022, Non-Final Rejection. [cited by applicant]
Faltin, U.S. Appl. No. 17/116,831, filed Dec. 9, 2020, Notice of Allowance and Fees Due. [cited by applicant]
Faltin, U.S. Appl. No. 17/116,831, filed Dec. 9, 2020, Final Rejection. [cited by applicant]
Faltin, U.S. Appl. No. 17/116,831, filed Dec. 9, 2020, Advisory Action. [cited by applicant]
Faltin, U.S. Appl. No. 17/116,831, filed Dec. 9, 2020, Non-Final Rejection. [cited by applicant]
Rahm, “Scalable Graph Analytics”, Year 2017, 73 pages. [cited by applicant]
Holzschuher et al., “Querying a graph database—language selection and performance considerations”, 2015, 24 pages. [cited by applicant]
Curtis-Black et al., “Scout: A Framework for Querying Networks”, (Year: 2020). [cited by applicant]
Trigonakis, U.S. Appl. No. 16/778,668, filed Jan. 31, 2020, Notice of Allowance and Fees Due. [cited by applicant]
Trigonakis, U.S. Appl. No. 16/778,668, filed Jan. 31, 2020, Non-Final Rejection. [cited by applicant]
Trigonakis, U.S. Appl. No. 16/778,668, filed Jan. 31, 2020, Advisory Action. [cited by applicant]
Trigonakis, U.S. Appl. No. 16/778,668, filed Jan. 31, 2020, Final Rejection. [cited by applicant]
Zheng, D. et al., “Distributed Hybrid CPU and GPU training for Graph Neural Networks on Billion-Scale Heterogeneous Graphs”, 11 pages. [cited by applicant]
Zheng, D. et al., “DistDGL: Distributed Graph Neural Network Training for Billion-Scale Graphs”, 2020 IEEE/ACM 10TH Workshop On Irregular Applications: Architectures and Algorithms (IA3), pp. 36-44. [cited by applicant]
Roth, N. P. et al., “PGX.D/Async: A Scalable Distributed Graph Pattern Matching Engine”, 6 pages. [cited by applicant]
Hamilton, W. et al., “Inductive Representation Learning on Large Graphs”, 19 pages. [cited by applicant]