DynamoDB 是不是仍然遵循 CAP 定理及其“强一致性”承诺?
Posted
技术标签:
【中文标题】DynamoDB 是不是仍然遵循 CAP 定理及其“强一致性”承诺?【英文标题】:Is DynamoDB still following CAP theorem with its "Strong Consistency" promises?DynamoDB 是否仍然遵循 CAP 定理及其“强一致性”承诺? 【发布时间】:2015-12-02 07:12:59 【问题描述】:以前,DynamoDB 仅提供“最终一致性”,遵守 CAP 定理的“可用性”和“分区容限”部分。
但是现在,DynamoDB 提供了“最终一致性”之外的“强一致性”选项。这是否意味着 DynamoDB 没有遵循 CAP 定理?
【问题讨论】:
您对 Dynamo 论文感到困惑,该论文放弃了可用性的一致性。但 DynamoDB 是与 Dynamo 完全不同的服务。它天生具有很强的一致性。 如果您认为reading from Dynamo takes a longer time
是一种不可用的形式,那么它并不违反 CAP。 availability
是 CAP 中最难定义的概念,经常被误解。
【参考方案1】:
DynamoDB,处于强一致性模式,trades against availability:
当您发出高度一致的读取请求时,DynamoDB 会返回包含最新数据的响应,这些数据反映了 DynamoDB 向其返回成功响应的所有先前相关写入操作的更新。 在网络延迟或中断的情况下,强一致性读取可能不太可用。 对于 GetItem、Query 或 Scan 操作,您可以通过在请求中指定可选参数来请求强一致性读取结果。
因此,它不违反任何理论约束。
【讨论】:
也可以将来自服务的 ProvisionedThroughputExceeded(限制)和 InternalServerError(服务端复制动态、网络问题等)响应视为不可用。以上是关于DynamoDB 是不是仍然遵循 CAP 定理及其“强一致性”承诺?的主要内容,如果未能解决你的问题,请参考以下文章