读取一致性 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

读取一致性

Amazon DynamoDB 从表、本地二级索引(LSI)、全局二级索引(GSI)和流中读取数据。有关更多信息,请参阅Amazon DynamoDB 的核心组件。表和 LSI 都提供两个读取一致性选项:最终一致读取(原定设置)和强一致性读取。来自 GSI 和流的所有读取是最终一致的。

当您的应用程序向 DynamoDB 表写入数据并收到 HTTP 200 响应(OK)时,这意味着写入已成功完成并且已持久保持。DynamoDB 提供读取已提交隔离,并确保读取操作始终为项目返回提交的值。读取从不会显示在写入过程中最终未取得成功的项目。读取已提交隔离无法防止在读取操作后立即修改项目。

最终一致性读取

最终一致性是所有读取操作的原定设置读取一致性模型。当对 DynamoDB 表或索引发出最终一致读取时,响应可能不会反映最近完成的写入操作的结果。如果您在短时间后重复执行读取请求,响应最终将返回最新的项目。表、本地二级索引和全局二级索引都支持最终一致读取。另请注意,来自 DynamoDB 流的所有读取也是最终一致的。

最终一致读取的成本是强一致性读取的一半。有关更多信息,请参阅 Amazon DynamoDB 定价

强一致性读取

读取操作(例如 GetItemQueryScan)提供了一个可选 ConsistentRead 参数。如果设置ConsistentRead为 true,则 DynamoDB 会返回包含 up-to-date 最多数据的响应,反映之前所有成功写入操作的更新。只有表和本地辅助索引才支持强一致性读取。不支持从全局二级索引或 DynamoDB 流进行强一致性读取。

全局表读取一致性

DynamoDB 还支持使用全局表进行多活动和多区域复制。全局表由位于不同 Amazon 区域的多个副本表组成。对任何副本表中的任何项目所做的任何更改都将复制到同一全局表中的所有其他副本,时间通常在一秒钟内,并且最终一致。有关更多信息,请参阅一致性和冲突解决