【发布时间】:2014-01-19 03:20:17
【问题描述】:
在尝试将 Dynamodb 用于其中一个项目时,我对 dynamodb 的强一致性模型有疑问。来自常见问题解答
强一致性读取 — 除了最终一致性之外,Amazon DynamoDB 还为您提供 如果您的应用程序或应用程序的一个元素需要它,则可以灵活和控制请求强一致的读取。强一致性读取返回的结果反映了在读取之前收到成功响应的所有写入。
从上面的定义,我得到的是强一致性读会返回最新的写值。
举个例子:假设 Client1 在 Key K1 上发出写入命令,将值从 V0 更新到 V1。几毫秒后,Client2 发出对 Key K1 的读取命令,那么在强一致性的情况下,V1 将始终返回,但在最终一致性的情况下,可能会返回 V1 或 V0。我的理解正确吗?
如果是,如果写操作返回成功,但数据没有更新到所有副本,我们发出强一致性读,这种情况下如何保证返回最新的写值?
以下链接 AWS DynamoDB read after write consistency - how does it work theoretically? 试图解释这背后的架构,但不知道这是否是它的实际工作方式?浏览完这个链接后,我想到的下一个问题是:DynamoDb 是否基于单主多从架构,其中写入和强一致性读取是通过主副本,而正常读取是通过其他副本。
【问题讨论】:
标签: amazon-web-services amazon-dynamodb consistency eventual-consistency