DynamoDB最终一致性读取顺序写入数据的排序

时间:2015-05-07 12:44:36

标签: amazon-web-services amazon-dynamodb nosql

我有一个应用程序,它将事件附加到dynamodb tableuserid作为一个哈希键,增量序列号作为范围键(以保证排序顺序)。表格仅附加。表示作者为用户ID'编写事件。我有一个阅读器,使用用户ID' 1'散列键。 如果读者使用强一致性读取,我知道读者将按顺序获取数据与写序列相同。

如果读者最终使用了一致性读取,我可以期待相同的行为吗?

1 个答案:

答案 0 :(得分:0)

不能指望相同的行为,因为最后写入的项可能无法用于最终一致的读取。

比如说你连续写了3次:

userId=1, seqNumber=1
userId=1, seqNumber=2
userId=1, seqNumber=3

如果您进行最终一致的阅读,则无法保证获得所有项目。如果您是插入项目的方式,您的查询仍将按顺序返回项目。如果您想获得所有最新的写入,则必须使用强一致性读取。

来自DynamoDB FAQ

  

...

     

最终一致性读取(默认) - 最终一致性   选项可最大化您的读取吞吐量。然而,最终   一致阅读可能无法反映最近完成的结果   写。通常在所有数据副本中达成一致性   一秒。在短时间后重复读取应该返回   更新数据

     

...