DynamoDB 的一致性模型、CAP、分区恢复等有哪些文档?



我正在考虑使用亚马逊的DynamoDB。当然,如果您想使用高可用性的分布式数据存储,您希望确保您的客户端以合理的方式处理中断!

虽然我可以找到描述Amazon的"Dynamo"数据库的文档,但我的理解是"DynamoDB"的名称来源于Dynamo,但与Dynamo没有任何其他关系。

对于DynamoDB本身,我能找到的唯一文档是一个简短的论坛帖子,基本上说"重试500个错误"。对于大多数其他数据库,可以获得更详细的信息。

我应该在哪里了解更多关于DynamoDB的停机处理?

虽然Amazon DynamoDB确实缺乏关于他们对CAP定理的选择的详细说明(仍然希望Kyle Kingsbury最优秀的Jepsen系列的DynamoDB版本-也许叫我:Cassandra分析了一个受Dynamo启发的数据库),但Jeff Walker Code Ranger对DynamoDB的回答:条件写入vs. CAP定理证实了在这方面缺乏明确的信息,但断言我们可以做出一些非常有力的推断

参考的论坛帖子也建议强调可用性,事实上:

DynamoDB确实跨多个同步复制区域内的可用性分区,因此可以容忍区失败。如果某个区域不可用,您仍然可以使用DynamoDB,服务将保存任何成功的写入我们已经确认(包括我们当时确认的信件)可用区变为不可用)。

丢失整个可用区时的客户体验在某些情况下,范围从完全没有影响到延迟处理时间其中需要进行故障检测和服务端重定向。在后一种情况下的确切效果取决于客户是否直接使用服务的API或通过我们的sdk之一连接。

除此之外,Werner Vogels关于Dynamo/DynamoDB的文章最终提供了更多的见解:

  • Amazon's Dynamo -关于原始论文
  • Amazon DynamoDB -专为互联网规模应用而设计的快速可扩展NoSQL数据库服务-主要介绍文章,包括:

    • NoSQL在Amazon - Dynamo的历史
    • 亚马逊Dynamo的经验教训
    • 介绍DynamoDB -这具有关于主题的最相关信息

      持久且高可用。Amazon DynamoDB复制它的数据至少3个不同的数据中心,使系统可以继续运行即使在复杂的故障情况下也能运行和提供数据。

      。Amazon DynamoDB是一个非常灵活的系统不强迫其用户使用特定的数据模型或特定的一致性模型。DynamoDB表没有固定的模式,但是相反,允许每个数据项具有任意数量的属性,包括多值属性。开发人员可以选择使用访问数据库时更强的一致性模型,权衡简单模型的一些性能和可用性。他们也可以的原子递增/递减功能用于计数器的DynamoDB。(我强调)

  • DynamoDB一年后:更大,更好,85%便宜…-关于改进

最后,Aditya Dasgupta关于Amazon Dynamo DB的演讲也分析了它在CAP定理方面的运作方式。

实际指导

在重试处理的实际指导方面,DynamoDB团队同时增加了一个关于处理错误的专门章节,包括错误重试和指数回退。

最新更新