cluster-computing - Titan(不是后端存储)集群是如何工作的?

标签 cluster-computing amazon-dynamodb titan

上下文

我在 AWS 基础设施上使用 Titan v1.0.0,并希望支持故障转移/容错。 AWS 将负责 DynamoDb 存储后端,但似乎有必要让 (ELB) 负载均衡器为多个 titan 实例提供服务。

我正在使用 nodeJs 库访问 gremlin,然后使用 gremlin 访问 Titan。

问题

那么,Titan(不是后端存储)集群是如何工作的?如果有的话。

明确地说,我不是在谈论任何后端存储集群,因为我在 AWS 上使用 dynamoDb。关于 transaction locking 的文档对我来说,必须存在一个 titan 集群,因为如果没有某种相互通信,其他 titan 节点将不知道锁定。但我没有看到任何支持此功能的配置选项。

如果在 titan 上可以进行集群,有没有人知道如何在生产高可用性设置中进行此设置?

服务器端架构图:

[NodeJsA]\             /[TitanA]\
          \           /          \
           [ELB (AWS)]            [DynamoDb (AWS)]
          /           \          /
[NodeJsB]/             \[TitanB]/

此外,如果没有 titan 节点集群,则通过 TitanA 节点(上图)进行的更改可能需要以下时间才能在 TitanB 节点上显示(最坏情况):

(AWS 最终一致性收敛时间(~1 秒)+ TitanB 缓存超时 + 从 NodeJs 节点到 titanDB 的轮询时间)

缺乏集群的另一个后果是 session 必须固定在 ELB 中,否则读取请求在更新后可能由具有陈旧信息的不同节点提供服务。

最佳答案

Titan 不会在所选后端支持的范围之外进行任何“集群”。您将“锁定”称为表示支持集群的东西,但是如果您阅读了您提供的那个链接中的锁定提供程序,您会发现锁定在 Titan 级别上并没有真正做任何非常花哨的事情,而且它是后端依赖的。所以 Titan 实例实际上没有任何外部集群功能或彼此之间的知识。因此,您需要在您的架构中考虑到这一点。

关于cluster-computing - Titan(不是后端存储)集群是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41674226/

相关文章:

azure - MarkLogic 集群 - 使用所有文档配置林

amazon-dynamodb - 使 DynamoDB 数据在 Athena 中可搜索的正确方法?

amazon-web-services - 为什么通过 cdk 向 dynamodb 表添加二级索引需要重新创建该表?

docker - 如何在不使用Docker容器的情况下在Open Server中运行Docker镜像

java - 集群环境下的Spring调度器

php - 使用 SDK2 for PHP 从 DynamoDB 获取值的更简单方法是什么?

python - 如何获得给定顶点的最小子图?

java - 在 Java 中向 TitanDB Graph 添加顶点

database - 将 BatchGraph 与 TitanGraph 一起使用时出错

java - Java中如何在集群之间安全地共享信息?