以2600万边缘存储图形的有效方法

时间:2017-05-03 20:12:28

标签: java graph bigdata

我对图形处理相对较新 我有一个带有2600万个边缘和节点的图形,我想在它上运行k-shortest路径算法,目前,我正在使用散列图存储边缘,但是我得到了java堆空间内存不足错误(这是可以理解的)。

所以我的问题是什么是存储此图表的最有效方法,以便我不会出现内存溢出错误,我可以有效地运行k-shortest路径算法。 是否有专门用于图形的内存数据库?

1 个答案:

答案 0 :(得分:0)

内存图数据库(处理和存储方面的本机和非本机)有所不同。你可以在下面找到它们中最受欢迎的三个:

  • Bitsy是一个小型,快速,可嵌入,耐用的内存中图形数据库,可实现Blueprints API。
  • Graph Engine(GE)是一个分布式内存数据处理引擎,以强类型RAM存储和通用分布式计算引擎为基础。
  • Grapholytic是唯一一个使用高级机器学习算法自动将图形分布到群集节点的数据库。无可伸缩性限制。将数据绑定到CPU电源:启用并行处理和高级性能以进行分析处理。结合内存计算和低成本存储,用于企业计算方案。

此外,您可以使用一些流行的缓存系统,如Redis。如果你想存储邻接矩阵内联存储器,Redis可能是一个合理的选择。