Comments (2)
The Single Source Shortest Path (SSSP) API in HugeGraph, specifically through the SingleSourceShortestPathTraverser
class, is designed for efficient shortest path computation from a single source vertex to all others. It leverages efficient data structures like LinkedHashMap
for WeightedPaths
and Set<Edge>
for storing edges, optimizing memory usage while maintaining quick access and insertion order. The implementation also includes a mechanism to skip super nodes based on a specified skipDegree
, reducing memory footprint by avoiding traversal of high-degree nodes.
The SSSP algorithm is part of the broader traverser API, extending the HugeTraverser
class to utilize common graph traversal functionalities. This ensures seamless integration and leverages the framework's capabilities for vertex and edge loading. The design patterns observed include the Traverser pattern for systematic exploration and the Decorator pattern for extending node functionalities.
Performance-wise, while the implementation does not directly address backend specifics like RocksDB or storage media (HDD vs. SSD), the efficiency of RocksDB, especially on SSDs, would contribute positively to the traversal speed by reducing data access latency. The algorithm's memory management strategy involves algorithmic controls (parameters like max_degree
, capacity
, and limit
) alongside Java's memory management through iterators and object scoping.
For more detailed insights, the source code of the SingleSourceShortestPathTraverser
and SingleSourceShortestPathAPI
classes on GitHub provides a comprehensive look at the implementation and its integration with the HugeGraph framework.
This overview should give you a clearer understanding of the SSSP API's workings within HugeGraph, including its memory management, design patterns, and integration with the traverser API. If you have further questions or need more details, feel free to ask.
Sources
- hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/traversal/algorithm/SingleSourceShortestPathTraverser.java
- hugegraph-server/hugegraph-api/src/main/java/org/apache/hugegraph/api/traversers/SingleSourceShortestPathAPI.java
About Dosu
This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.
Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.
If you want to continue the conversation, start your reply with @dosu-bot.
from incubator-hugegraph.
Due to the lack of activity, the current issue is marked as stale and will be closed after 20 days, any update will remove the stale label
from incubator-hugegraph.
Related Issues (20)
- [Bug] migrating from version 0.11 to apache release 1.2.0, but start failed HOT 3
- [Summary] Dropping Support for Java 8: Compatibility Breaks Ahead
- [Question] 1.2.0 create graph in rest-api throws auth related permission HOT 7
- 创建属性的时候报错 HOT 2
- hugegraph集群应该怎么配置? HOT 2
- 集群部署hugegraph1.2.0 ,但是在主节点创建图同步失败,是因为什么原因造成的? HOT 5
- [Summary] Feedback on the trial of HugeGraph Distributed (pd-store) Version (BETA)
- [Bug] g.E().count() the result is not as expectedThe result is not as expected HOT 8
- 如何对Hugegraph-server中的Kneighbor算法的执行过程作profiling。分析算法执行过程中的各个阶段的内存和CPU占用。 HOT 7
- [Question] i have deploy hugegraph server( singel node), write occur error: org.apache.hugegraph.exception.ServerException: The rest server is too busy to write HOT 3
- [Bug] gremlin example script execution error with RocksDB backend
- [Question] Why we use relational/SQL based backend storage in GraphDB? HOT 5
- [Question] Error during serialization, serializer org.apache.hugegraph.backend.id.IdGenerator$StringId not found HOT 4
- [Question] There is no demo of how creating a graph through GraphAPI in test module and I had try client.post() failed. HOT 13
- [Question] How to check hugegraph node(role) status like master-worker? HOT 3
- [Question] When vertex strategy is CUSTOMIZE_UUID, is there need to pass the id value in json? HOT 6
- [Question] Run hugegraph-server in docker failed (Legacy version) HOT 9
- 怎么访问边和顶点的属性? HOT 5
- 【2024 OSPP/GLCC】Welcome to Apache HugeGraph (Colleges & Student)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from incubator-hugegraph.