无效如何在AWS DynamoDB DAX多区域中工作

时间:2019-03-11 14:55:31

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

我们正在使用DynamoDB全局表,并计划在DynamoDB的顶部使用DAX来启用缓存。但是我没有提到在多区域设置中DAX无效将如何发生。

例如,假设有两个集群,一个在us-west-2中,一个在us-east-2中。如果我们使用DAX客户端更新us-east-2中的内容,则其缓存将被更新,但是在将数据复制到us-west-2时,全局表也会在us-west-2中更新缓存吗?我没有在DynamoDB documentation中提及此事。

3 个答案:

答案 0 :(得分:1)

这时,区域2中的DAX缓存将不知道GT复制写操作。目前,您最好的选择是在两个区域中的DAX上都保持较低的TTL,以便它更频繁地获取最新版本。

答案 1 :(得分:1)

DAX缓存不会更新。全局表将在其他区域中复制数据。但是,它不会更新缓存。甚至query cacheitem cache是独立的。

  

DAX不会刷新查询缓存中结果最多的结果集   DynamoDB的当前数据。查询缓存中的每个结果集是   当前执行查询或扫描操作的时间。   因此,查理的查询结果不能反映其PutItem操作。   在DAX从查询中逐出结果集之前,情况就是这样。   缓存。

制定政策:-

  

DAX项目缓存实现了直写策略(请参阅DAX如何   处理写入)。编写项目时,DAX确保已缓存   item与DynamoDB中存在的项目同步。这是   对于需要立即重新读取项目的应用程序很有帮助   写完之后。但是,如果其他应用程序直接写入   DynamoDB表中,DAX项目缓存中的项目将不再位于   与DynamoDB同步。

DAX Consistency

在上面的语句中,您可以将other application单词视为global table复制。 DAX不会知道为全局表完成的复制。

答案 2 :(得分:0)

这一直是AWS服务团队遇到的一致问题。他们似乎孤立地设计事物,而不必担心不同的相关上下文。我已经在几个地方看到这种设计上的不一致。实际上,即使在DAX和DynamoDB中,这2个TTL概念即使相关也不会考虑其功能。不知道AWS服务团队何时会像Microsoft为其解决方案那样在完全上下文中进行设计。