Janus Graph 后端 cassandra 与 Bigtable

问题描述

我打算使用 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,我可以告诉你,总体来说它很可靠。这些困难往往与批量数据加载有关。但除此之外,事情似乎运行得很好。