需要关于Neo4j文件系统的信息



大家好。我需要了解更多关于Neo4j的存储文件。我想知道有没有人回答我的问题。以下是我的问题:1. 所有节点都存储在一个存储文件中吗?2. 是否有其他存储文件来保存或保存标签?3.我可以通过使用普通函数从Neo4j创建的存储文件中读取每条记录吗?

这可能对你有帮助

http://www.slideshare.net/thobe/an-overview-of-neo4j-internals

O'Reilly的Graph Databases是免费的,对于理解Neo4j的内部是一个很好的回应。最近甚至还出了第二版:

http://graphdatabases.com/

此外,您可以探索Neo4j的源代码。

Store - https://github.com/neo4j/neo4j/tree/2.3/community/kernel/src/main/java/org/neo4j/kernel/impl/store

例如,如果查看NodeStore,我们可以找到以下内容:

  • 节点存储在单独文件
  • 每条记录使用15字节
  • 通过id获取节点记录只是:计算偏移量并读取15字节
  • 节点记录分为几个部分:
    • [byte] isInUse -我们可以使用这个记录来存储节点吗?(删除节点时,不会删除实际数据,只是将记录标记为未使用,并使其可供将来写入)
    • [int] nextRel -指向下一个关系的指针(存储在单独的文件中)
    • [int] nextProp -指向下一个属性(存储在单独的文件中)
    • [int + byte]一些标签的东西
    • (字节)"额外"

等等

根据我的经验,关于Neo4j内部的资源很少。大多数都很过时了。
这就是为什么,从我的角度来看,探索源代码是真正了解"它是如何工作的"的最佳视角。

最新更新