【发布时间】:2017-05-16 02:08:16
【问题描述】:
我发现很难说服自己使用 DynamoDB 等复杂设计优于简单复制策略的优势。
假设我们要在 5 台服务器上构建分布式键/值数据存储。 (每个服务器都有完全相同的副本)。
最终一致性系统,如 DynamoDB,通常使用复杂的冲突协调、向量时间戳等来实现最终一致性。
但是,为什么我们不能简单地执行以下操作:
- 对于写入,客户端将向所有服务器发出写入命令。所以所有的服务器都会按照相同的顺序执行客户端的写命令。它会在服务器提交写入之前回复客户端。
- 对于读取,客户端只会进行循环,一次只有一个服务器会处理读取命令。 (其他服务器看不到读取命令) 是的,客户端可能会遇到临时过时的数据,但最终所有副本都将拥有相同的数据集,这与 DynamoDB 的语义相同。
这种简单的设计与复杂的 DynamoDB 相比有什么缺点?
【问题讨论】:
标签: amazon-dynamodb distributed-system key-value-store eventual-consistency