[Feature] The gaph in-memory projection and and its corresponding algorithm
Open
feature
- Dominant language
- Java
- Stars
- 3.2k
- Forks
- 636
- Avg merge
- 3d 11h
- Merged PRs (30d)
- 14
Description
### Feature Description (功能描述)
# 问题描述
我司决定采用HugeGraph作为数据库,并在使用过程中需要频繁调用s-t最短路径,但是我发现最短路径算法性能在大图中很慢几乎无法使用。为了优化算法,我参考了Neo4j GDS,并在内存中实现了针对s-t边的持久化投影以重新实现了源到目标的迪杰斯特拉算法,同时还进行了一些基本的优化,包括优化的优先队列等。这些改进使得投影后的源到目标迪杰斯特拉算法的执行时间稳定在毫秒级。
我希望将我的代码贡献到HugeGraph中,以便更多用户受益于这些性能优化。
# 目前的问题
目前,我的代码(包括图的投影和基于投影的迪杰斯特拉算法)都存放在 hugegraph-core/src/main/java/org/apache/hugegraph/traversal 目录下。然而,我认为这不够合理,至少对于图的投影而言,因为可以优化更多的算法,应该将其放置在一个更大的包中。
# 提议
我希望将我的代码重新组织,并将图的投影放置在一个更合适的大包中。然而,我对于在HugeGraph中的代码组织结构并不了解,所以我需要一些建议。
具体来说,我想知道:
1. 在HugeGraph中,应该将图在内存中持久化投影的代码放在哪个目录?
2. 是否有任何特定的代码组织规范或命名约定我需要遵循?
3. 是否需要对HugeGraph的核心代码进行修改以适应我的贡献?
感谢您的指导和建议,我期待将这些性能优化的代码成功融入HugeGraph中。
Contributor guide
Assessment
This issue has not been assessed yet.