读取一致性 - Amazon DynamoDB

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

读取一致性

Amazon DynamoDB 据库在多个AWS世界各地的区域。每个区域均与其他区域独立和隔离AWS区域。例如,如果您有一个名为的表人员中的us-east-2区域和另一个名为人员中的us-west-2区域,这些被认为是两个完全独立的表。有关列表的所有AWS具有 DynamoDB 可用的区域,请参阅AWS区域和终端节点中的Amazon Web Services 一般参考

EWORYAWS区域包含多个不同的称为可用区的位置。每个可用区都与其他可用区中的故障隔离,并提供与同一区域其他可用区的低成本、低延迟网络连接。这使您可以在某个区域的多个可用区之间快速复制数据。

当您的应用程序向 DynamoDB 表写入数据并收到 HTTP 200 响应 (OK),则写操作已发生且持久。该数据最终将在所有存储位置中保持一致,通常只需一秒或更短时间。

DynamoDB 支持最终一致性强一致性读取。

最终一致性读取

当您从 DynamoDB 表中读取数据时,响应反映的可能不是刚刚完成的写入操作的结果。响应可能包含某些陈旧数据。如果您在短时间后重复读取请求,响应将返回最新的数据。

强一致性读取

当您请求强一致性读取时,DynamoDB 将返回具有最新数据的响应,从而反映来自所有已成功的先前写入操作的更新。但是,这种一致性有一些缺点:

  • 如果网络延迟或中断,可能会无法执行强一致性读取。在这种情况下,DynamoDB 可能会返回服务器错误 (HTTP 500)。

  • 强一致性读取可能比最终一致性读取具有更高的延迟。

  • 全局二级索引不支持强一致性读取。

  • 强一致性读取可能比最终一致性读取使用更高的吞吐量。有关详细信息,请参阅读/写容量模式

注意

DynamoDB 使用最终一致性读取,除非您指定其他读取方式。读取操作 (例如 GetItemQueryScan) 提供了一个 ConsistentRead 参数。如果您将此参数设置为 true,DynamoDB 将在操作过程中使用强一致性读取。