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

多区域强一致性

注意

多区域强一致性(MRSC)目前为预览版,可能会发生变化。

多区域强一致性(MRSC)是一项新的 DynamoDB 全局表功能,现为预览版。为 MRSC 配置的全局表能够在多区域范围内执行强一致性读取。对 MRSC 表执行强一致性读取可确保您始终读取项目的最新版本,而无论您在哪个区域中执行读取。

可以使用多区域强一致性全局表来构建恢复点目标(RPO)为零的应用程序。RPO 为零可确保应用程序始终可以读取最新版本的 DynamoDB 数据,即使应用程序中断导致您将流量转移到其它 Amazon Web Services 区域也是如此。

全局表版本 2019.11.21(当前版)支持 MRSC 预览版。

全局表的一致性模式

创建全局表时,可以配置其一致性模式。全局表提供以下多区域一致性模式:最终一致性强一致性(预览版)

如果您在创建全局表时未指定一致性模式,则全局表默认为多区域最终一致性(MREC)。全局表不能包含配置了不同一致性模式的副本。您无法更改全局表的一致性模式。

多区域最终一致性(MREC)

多区域最终一致性(MREC)是全局表的默认一致性模式。您对 MREC 全局表副本中的项目所做的更改通常会在一秒或更短的时间内复制到所有其它副本。这意味着,如果项目是在读取发生的区域中更新的,则将 ConsistentRead 参数设置为 true(强一致性读取)时执行的读取操作将始终返回项目的最新版本,但如果项目是在其它区域中更新的,则可能会返回陈旧的数据。

由于在多个区域中同时修改同一项目而发生的冲突,可通过以最后写入者为准 的方法来解决。

与 MRSC 全局表相比,MREC 全局表将具有更低的写入延迟和强一致性读取延迟。

在以下情况下,应使用 MREC 模式:

  • 如果从强一致性读取操作返回的陈旧数据已在其它区域中更新,您的应用程序可以容忍这些数据。

  • 您优先考虑较低的写入延迟和强一致性读取延迟,而不是多区域读取一致性。

  • 您的多区域高可用性策略可以容忍 RPO 大于零。

多区域强一致性(预览版)

注意

多区域强一致性(MRSC)目前为预览版,可能会发生变化。

您对 MRSC 全局表副本中的项目所做的更改,可以通过强一致性读取立即在全局表中的任何其它副本表中读取。这意味着,在 ConsistentRead 参数设置为 true(强一致性读取)的情况下进行的读取操作将始终返回任何副本表中项目的最新版本。

如果写入操作修改已在另一个区域中正在修改的项目,则该写入操作将失败,并引发 ReplicatedWriteConflictException。可以重试失败并引发 ReplicatedWriteConflictException 的写入,如果冲突的更新已得到解决,并且没有其它冲突的更新正在进行中,则写入将成功。

与 MREC 全局表相比,MRSC 全局表将具有更高的写入延迟和强一致性读取延迟。

在以下情况下,应使用 MRSC 模式:

  • 您需要具有多区域范围的强一致性读取保证。

  • 您优先考虑全局读取一致性,而不是较低的写入延迟。

  • 您的多区域高可用性策略要求 RPO 为零。

MRSC 预览版的区域可用性

以下 Amazon Web Services 区域中提供了 MRSC 预览版:

  • 美国东部(弗吉尼亚北部)- us-east-1

  • 美国东部(俄亥俄)- us-east-2

  • 美国西部(俄勒冈)- us-west-2

MRSC 预览版注意事项

当您使用带有 MRSC 的全局表时,以下注意事项适用于此预览版:

工作负载注意事项

  • 带有 MRSC 的全局表仅适用于预览版。不应将它们用于生产工作负载。

  • MRSC 表的性能和吞吐量特性可能会在整个预览版期间发生变化。

功能支持

与 MREC 全局表的行为差异

  • MRSC 预览版仅在有限的一组区域中提供。

  • 一个 MRSC 全局表必须恰好包含三个副本表。

  • 必须通过向不包含任何数据的现有单区域表中添加两个副本表来创建 MRSC 全局表。

  • 无法从 MRSC 全局表中删除单个副本表。要删除 MRSC 全局表,必须在单个操作中删除两个副本表,从而导致一个单区域表。然后,可以删除剩下的单区域表。

  • 在初始回填期之后,可能发生全局二级索引键违规

配额

  • Amazon Web Services 账户最多可以有三个带有 MRSC 的全局表。

  • 预置容量模式下的写入吞吐量限制为 10000 个复制的写入容量单位(rWCU)。

  • 预置容量模式下的读取吞吐量限制为 10000 个读取容量单位(RCU)。

  • 按需容量模式下的写入吞吐量限制为 10000 个复制的写入请求单位(rWRU)。

  • 按需容量模式下的读取吞吐量限制为 10000 个读取请求单位(RRU)。