我计划使用 Janusgraph 来构建我们团队处理的不同用途的图表,我看到 janus 图表可以选择使用 BigTable 或 Cassandra 作为存储后端。我正在使用 JanusGraph 寻找关于哪个后端更优化/性能更好的建议(我主要谈论节点的 2 跳邻居上的 gremlin 查询性能)。
我知道性能是非常主观的,并且会根据数据大小/图形连接性和用例而有所不同,因此最好的方法是亲自尝试,我正计划这样做。但是有没有其他人做过类似的性能比较?这里有关于存储后端的一般性建议吗?
最佳答案
你是对的,性能是:
- 主观
- 很大程度上取决于数据大小
我可以告诉你,我也做过这个练习。为此,我认为分享来自 DB-Engines.com 的比较很重要.
就性能而言,我最关注的是每个人如何处理一致性。作为一般规则,强制执行更高级别一致性的数据库通常不得不牺牲性能。
- BigTable == 强一致性
- Cassandra == 最终一致
其他值得考虑的因素是 BigTable 将您限制在 Google Cloud (GCP) 上。如果您不想通过网络损失性能,您还需要为数据局部性支付 GCP 上更多 (Janus) 实例的费用。
就原始 DB-Engine“分数”而言,Cassandra 目前为 114.112,而 BigTable 仅为微不足道的 3.582。这些分数每个月都会发生变化,但总的来说,这表明 Cassandra 周围有一个非常更强大的社区。同样,Cassandra 在该站点上有 18182 个问题,而 BigTable 只有 449 个。最重要的是,获得支持和问题答案会容易得多。
仅仅基于社区的潜在力量,Cassandra 是更好的选择。
过去几年在 Cassandra 上支持 JanusGraph,我可以告诉你,总体来说它很可靠。困难往往与批量数据加载有关。但除此之外,一切似乎都进展顺利。
关于cassandra - Janus Graph 后端 cassandra 与 Bigtable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67910867/