我想要处理一个具有数亿个节点的超大型NetworkX图形对象。我希望能够将它写入文件,以便不消耗我所有的计算机内存。但是,我需要不断搜索现有节点,更新边缘等。读/写NetworkX图形对象
有没有一个很好的解决方案?我不知道它将如何与所提供的任何关于http://networkx.lanl.gov/reference/readwrite.html
唯一的解决方案,我能想到的是给每个节点存储与在文件系统中的其他节点引用一个单独的文件中的文件格式的工作 - 这样,打开一个节点进行检查不会使存储器过载。是否有大量数据的现有文件系统(例如PyTables)在不编写自己的样板代码的情况下执行此操作?
感谢Luis。Essentially我存储在一个数据库中,但是,查询节点来获取邻居是非常昂贵的,我只能想象Google的服务器是什么样的... – ejang
如果图形已经在RAM中,那么为什么要序列化它是一个问题?磁盘空间比RAM便宜)或者NetworkX有某种内部方法来压缩表示,并且在序列化过程中会弹出?我很好奇 – user
我认为这个问题并没有把重点放在序列化上,而是把它保存在一个结构中这将允许有效的查询。这是我对数据库的建议来自何处。 – LuisZaman