Janus Graph 后端 cassandra 与 Bigtable

Posted

技术标签:

【中文标题】Janus Graph 后端 cassandra 与 Bigtable【英文标题】:Janus Graph backend cassandra vs Bigtable 【发布时间】:2021-06-09 19:52:43 【问题描述】:

我计划使用 Janusgraph 来构建我们团队处理的不同用途的图,我看到 Janus 图可以选择使用 BigTable 或 Cassandra 作为存储后端。我正在使用 JanusGraph 寻找关于哪个后端更优化/性能更好(我主要谈论节点的 2 跳邻居的 gremlin 查询性能)的任何建议。

我知道性能是相当主观的,并且会根据数据大小/图形连接性和用例而有所不同,因此最好的方法是亲自尝试,我正计划这样做。但是有没有其他人做过类似的性能比较?这里有关于存储后端的一般建议吗?

【问题讨论】:

【参考方案1】:

你的表现是对的:

主观的 很大程度上取决于数据大小

我可以告诉你,我也做过这个练习。为此,我认为与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,我可以告诉你,总体来说它是可靠的。这些困难往往与批量数据加载有关。但除此之外,一切似乎都运行良好。

【讨论】:

感谢您的回复。您能否提供有关您提到的“批量数据加载”问题的更多详细信息?您是在谈论高写入率问题还是进行批量读取/查询操作(如 OLAP 用例)? @Vishal 具体来说,JanusGraph 的 Spark 连接器已被证明在高写入吞吐量方面存在问题。

以上是关于Janus Graph 后端 cassandra 与 Bigtable的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Cassandra 存储后端删除 Titan 中的图形?

实现一个接收和处理客户端请求的服务器(cassandra 作为后端),Python 还是 C++?

无法启动 Cassandra - Snitch 的数据中心与以前不同

Rexster 使用 DynamoDB 作为存储后端来可视化 Titan Graph

Janus 无效会话 (null)

使用 gdb 调试 janus 网关