可扩展的 Janusgraph 组件

Janusgraph components that scale

如果我理解正确,多个 gremlin 服务器不会相互通信。比例尺只在cassandra/ES。

如果那是真的,每个 gremlin 服务器可以支持多少个顶点?

当图表由一个 gremlin 服务器更新时,其他 gremlin 服务器何时会看到该更改?

谢谢!

支持的顶点数为500万亿(2^59)

存储后端是多个 Gremlin 服务器之间状态的唯一来源。添加额外的 Gremlin 服务器不会增加顶点数。

JanusGraph 手册中的 Technical Limitations Page 概述了顶点数量的限制。

当一个 Gremlin 服务器看到另一个所做的更改时,由存储后端选择决定,但回答起来仍然很棘手

至于其他 Gremlin 服务器何时会看到变化,这个问题很难回答。如果您使用的是一致的数据后端,答案通常会在 Gremlin 完成其事务后立即得到。

但 Cassandra 是另一种野兽。

使用最终一致的存储后端

Cassandra 是众所周知的 eventually-consistent 数据库。这意味着它以事务一致性换取可用性和分区容错性;即使您开始丢失集群中的节点,它仍会继续运行并为请求提供服务。

这样做的缺点是 Cassandra 中的变化不会立即对消费者可用;您甚至可以遇到这样的情况:客户端向 Cassandra 写入更改,而如果同一个客户端立即尝试读取该数据,则他们看不到更改。

Chapter 31 in the JanusGraph Manual 涵盖处理像 Cassandra 这样的最终一致的存储后端。

实际上,突变与所有客户端能够在 Cassandra 中看到突变之间的时间量完全取决于数据负载、写入的性质以及 JanusGraph 的 read/write 一致性级别配置为使用 Cassandra 读写。