DynamoDB的一致性模型,CAP,分区恢复等存在哪些文档?

mjt*_*mjt 4 amazon-dynamodb

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

虽然我可以找到描述亚马逊"Dynamo"数据库的文档,但我的理解是"DynamoDB" 的名称源自Dynamo,但并不是以任何其他方式相关.

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

我应该在哪里了解有关DynamoDB中断处理的更多信息?

Ste*_*pel 10

虽然亚马逊DynamoDB确实缺乏关于他们对CAP定理的选择的详细说明(仍然希望发布一个DynamoDB版本的Kyle Kingsbury最优秀的Jepsen系列 - 请叫我:Cassandra分析一个Dynamo灵感数据库),Jeff Walker Code Ranger对DynamoDB的回答:条件写入与CAP定理证实了该领域缺乏明确的信息,但断言我们可以做出一些相当强烈的推论.

引用的论坛帖子也暗示了事实上也非常强调可用性:

DynamoDB确实在区域内的多个可用区域内同步复制,因此可以容忍区域故障.如果区域变得不可用,您仍然可以使用DynamoDB,并且该服务将保留我们已确认的任何成功写入(包括我们在可用区域变得不可用时确认的写入).

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

除此之外,Werner Vogels在Dynamo/DynamoDB上的帖子最终提供了更多的见解:

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

    • 亚马逊NoSQL的历史 - 迪纳摩
    • 亚马逊Dynamo的经验教训
    • 介绍DynamoDB - 这包含有关主题的最相关信息

      耐用且高度可用.Amazon DynamoDB通过至少3个不同的数据中心复制其数据,以便即使在复杂的故障情况下,系统也可以继续运行和提供数据.

      灵活.Amazon DynamoDB是一个非常灵活的系统,不会强迫用户进入特定的数据模型或特定的一致性模型.DynamoDB表没有固定的架构,而是允许每个数据项具有任意数量的属性,包括多值属性.开发人员可以选择在访问数据库时使用更强的一致性模型,从而为更简单的模型牺牲一些性能和可用性.他们还可以利用DynamoDB的原子递增/递减功能进行计数.[强调我的]

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

最后,Aditya Dasgupta关于亚马逊Dynamo DB的演讲也分析了其关于CAP定理的运作方式.

实用指导

在重试处理的实用指南方面,DynamoDB团队同时添加了一个关于处理错误的专用部分,包括错误重试和指数退避.