基于DynamoDB的单用户数据读写一致性及一致读配置咨询
问题解答
1. 默认最终一致性场景下的读取结果
DynamoDB默认的最终一致性读,在写入操作完成后立即发起读取请求的话,无法保证一定获取到name=world。哪怕是同一地理位置的同一设备,由于DynamoDB的数据跨副本复制是异步执行的,写入成功后新数据可能还未同步到所有副本,若后续读请求路由到未完成同步的副本,就会返回旧值name=hello。这种不一致的窗口通常很短,但不存在绝对的获取最新值的保证。
2. 配置一致读能否解决问题
是的,开启consistent read(一致读)可以解决该问题。一致读会强制从主副本读取数据,而主副本在写入操作成功时就已经持有最新的name=world值,因此只要写入操作确认成功,后续的一致读请求必然能获取到最新数据,完全匹配你场景中用户仅关注自身最新数据的需求。
内容的提问来源于stack exchange,提问作者Libertatem
相关产品推荐
相关产品推荐

