我有一个应用程序,它将事件附加到dynamodb table
,userid
作为一个哈希键,增量序列号作为范围键(以保证排序顺序)。表格仅附加。表示作者为用户ID'编写事件。我有一个阅读器,使用用户ID' 1'散列键。
如果读者使用强一致性读取,我知道读者将按顺序获取数据与写序列相同。
如果读者最终使用了一致性读取,我可以期待相同的行为吗?
答案 0 :(得分:0)
您不能指望相同的行为,因为最后写入的项可能无法用于最终一致的读取。
比如说你连续写了3次:
userId=1, seqNumber=1
userId=1, seqNumber=2
userId=1, seqNumber=3
如果您进行最终一致的阅读,则无法保证获得所有项目。如果您是插入项目的方式,您的查询仍将按顺序返回项目。如果您想获得所有最新的写入,则必须使用强一致性读取。
...
最终一致性读取(默认) - 最终一致性 选项可最大化您的读取吞吐量。然而,最终 一致阅读可能无法反映最近完成的结果 写。通常在所有数据副本中达成一致性 一秒。在短时间后重复读取应该返回 更新数据
...