情况:
GetItem
默认模式)我担心由于数据的最终一致性,这个测试必然是脆弱的。
如果我在使用GetItem
withConsistenRead=true
写入后立即尝试验证数据,则只能保证数据已写入大多数数据库副本,但不是全部,因此被测服务仍有机会在下一步中读取未更新的副本。
在继续操作之前,有没有办法确保数据已写入所有 DynamoDB副本?
答案 0 :(得分:1)
数据通常以秒的形式到达所有地理位置分散的副本。
我的建议是在调用Web服务之前等待(即以Java术语休眠几秒钟)几秒钟才能产生所需的结果。
将数据插入DynamoDB表后,请等待几秒钟再调用Web服务。
最终一致性读取(默认) - 最终一致性 选项可最大化您的读取吞吐量。然而,最终 一致阅读可能无法反映最近完成的结果 写。通常在所有数据副本中达成一致性 一秒。在短时间后重复读取应该返回 更新数据。