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

时间:2014-07-29 11:58:51

标签: amazon-dynamodb

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

虽然我可以找到描述亚马逊" Dynamo"数据库,我的理解是" DynamoDB" derives its name from Dynamo, but is not at all related in any other way

对于DynamoDB本身,我能找到的唯一文档是brief forum post,它基本上表示"重试500错误"。对于大多数其他数据库,可以获得更详细的信息。

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

1 个答案:

答案 0 :(得分:10)

虽然Amazon DynamoDB确实缺乏关于他们对{​​{3}}的选择的详细陈述(仍然希望发布一个DynamoDB版本的Kyle Kingsbury最优秀的CAP theorem系列 - Jepsen分析a Dynamo启发数据库),Jeff Walker Code Ranger对Call me maybe: Cassandra的回答证实了在这个领域缺乏明确的信息,但断言我们可以做出一些非常强大的推论

引用的DynamoDB: Conditional writes vs. the CAP theorem也表明事实上也非常强调可用性:

  

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

     

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

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

  • forum post - 关于原始论文
  • Amazon's Dynamo - 主要介绍性文章包括:

    • 亚马逊NoSQL的历史 - Dynamo
    • 从亚马逊的Dynamo中学到的经验
    • 介绍DynamoDB - 这包含有关主题的最相关信息
        

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

           

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

  • Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications - 关于改进

最后,Aditya Dasgupta关于DynamoDB One Year Later: Bigger, Better, and 85% Cheaper…的演讲也分析了其关于CAP定理的运作方式。

实践指导

就重试处理的实用指南而言,DynamoDB团队同时添加了一个关于Amazon's Dynamo DB的专门部分,包括Handling Errors