巨大的图形结构

Har*_*rph 7 python memory graph data-structures

我正在开发一个应用程序,其中我需要一个结构来表示内存中的一个巨大的图形(在1000000到6000000个节点和每个节点100或600个边缘之间).边表示将包含关系的一些属性.

我已经尝试了一个内存映射表示,数组,字典和字符串来表示内存中的结构,但由于内存限制,这些总是崩溃.

我想得到一个建议,我可以代表这个,或类似的东西.

顺便说一下,我正在使用python.

tst*_*ter 14

  1. 如果那是100-600个边/节点,那么你说的是36亿个边.
  2. 为什么这必须全部记忆?
  3. 你能告诉我们你目前使用的结构吗?
  4. 我们允许多少内存(你打的内存限制是多少?)

如果您在内存中需要它的唯一原因是因为您需要能够快速读取和写入它,那么请使用数据库.数据库的读写速度非常快,通常它们可以在不进入磁盘的情况下读取.

  • 是的......但你在谈论什么样的或哪个数据库? (3认同)
  • +1:这不是答案,但所有这些问题必须在我们继续之前得到解答 (2认同)

Bin*_*erd 6

根据您的硬件资源,这个大小的图形内存全部可能是不可能的.从图形特定的DB角度来看,有两种可能的选择:

  • Neo4j--声称能够轻松处理数十亿个节点并且已经开发了很长时间.
  • FlockDB - Twitter最新发布的这是一个分布式图形数据库.

既然你使用Python,你看过Networkx吗?如果你对它感兴趣,你在多大程度上加载了这个尺寸的图表?