DynamoDB是否仍然遵循CAP定理并保证“强一致性”?

27

之前,DynamoDB仅提供“最终一致性”,遵循CAP理论中的“可用性”和“分区容错性”部分。

但现在,除了“最终一致性”外,DynamoDB还提供了“强一致性”选项。这意味着DynamoDB不再遵循CAP理论吗?


你可能会对 Dynamo 论文感到困惑,因为它为了可用性而放弃了一致性。但是 DynamoDB 是一个完全不同的服务,它具有强一致性。 - user8303658
1
如果您认为“从Dynamo读取需要更长时间”是一种不可用形式,那么它不违反CAP。 “可用性”是CAP中最难定义的概念,经常被误解。 - stackoverflower
1个回答

38
在强一致性模式下,DynamoDB以可用性为代价进行交易。 当您发出强一致性读取请求时,DynamoDB将返回一个响应,其中包含最新的数据,反映了DynamoDB返回成功响应的所有先前相关写操作的更新。在网络延迟或中断的情况下,强一致性读取可能不太可用。对于GetItem、Query或Scan操作,您可以通过在请求中指定可选参数来请求强一致性读取结果。因此,它不违反任何理论约束。

2
可以将服务返回的ProvisionedThroughputExceeded(限流)和InternalServerError(服务端复制动态、网络问题等)响应视为不可用。 - Ben Schwartz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接