我正在寻找有关选择和配置Linux文件系统以存储neo4j数据库的建议。 当然,应该总是使用自己的工作负载进行测试,但总的来说,是否有关于哪个文件系统性能最佳的建议?
基于此页http://grokbase.com/t/gg/neo4j/131grvg09k/best-filesystem-for-new-neo4j-persistant-storage,如果我正确理解neo的写模式,xfs将是首选。
我还阅读了手册中的两个特定于Linux的页面,但似乎都没有为选择文件系统提供指导。
如果选择HDD与SSD的文件系统有所不同,请提及您对两者的看法。 如果对EC2 / EBS有特殊考虑,我也很想知道,因为这是我目前正在运行的地方。
如果重要的话,这里有关于我计划容纳的图表类型和工作量的信息: *产品目录风格的图形,具有数百万个具有大小属性的节点,以及数十亿个关系。 *主要用途 - 遍历100-500K节点子集来回答查询(所需的亚秒响应) *通过批量上传定期更新100-500K节点(20-30分钟就可以了)
非常感谢!
答案 0 :(得分:1)
如果您的应用程序主要是读驱动的,那么选择正确的文件系统我不会太费力。您应该专注于选择适合您的文件存储的MMIO缓存。如果高速缓存已预热,则读操作将不会访问IO子系统。
然而,当谈到写入操作时,SSD的工作方式通常比HDD更高效。 Ext4似乎是Neo4j最广泛使用的文件系统。在EC2上,您可能会受益于使用SSD支持的实例 - 但这取决于您的写操作数量。
一般来说,最佳做法是生成大约与所考虑的生产系统大小相同的图形数据库并预先运行检查。过早优化主要是一件愚蠢的事情。
答案 1 :(得分:0)
我不确定Neo4j的具体细节,但MongoDB在XFS上运行得更好。 Ext3 / 4没有正确处理稀疏文件(XFS上30s vs 0.1s),也没有快速删除很多文件。
也就是说,关于基准测试的建议是好的。在BTRFS准备就绪之前,我不会担心除ext4和XFS之外的任何其他文件系统。