AWS DynamoDB DAX扫描表

时间:2018-11-13 06:50:00

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

使用rowMapper配置并使用new ClientConfig()AmazonDaxClient

我无法将dax集群与我的表同步。我知道,如果它已在dax内存缓存中更新,则必须经过两次跳转才能返回查询结果。若要解决这样的问题,当我已经写入了大量数据时,如何在没有客户端查询的情况下将其同步到DAX群集?

因此,我想到了进行连接到我的dax端点的限制表扫描。 这仅返回缓存中的对象。通过dax进行的表扫描未反映任何更新/插入。

有帮助吗?

2 个答案:

答案 0 :(得分:0)

为查询缓存配置的TTL是多少? 您可能会看到此行为的原因是表扫描遇到了高速缓存命中,因此DAX无法联系DynamoDB。因此,您将获得旧数据。这些数据将一直保持陈旧状态,直到您使用TTL进行查询缓存为止,然后后续查询将获得新数据。

要了解有关项目缓存和查询缓存的更多信息,请访问DAX的官方页面:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.concepts.html#DAX.concepts.query-cache

答案 1 :(得分:0)

如AWS DAX用例中所述。达克斯不是连续读取的理想选择。因此:

  

需要高度一致的读取(或不能忍受最终一致的读取)的应用程序。

与AWS解决方案专家进行讨论。确实是这样。在DAX上执行扫描操作时。外部应用程序可能已直接写入dynamoDB表。相应于对缓存的SCAN操作已经包含命中,将返回结果,并且不报告缓存未命中,并且按原样返回结果。理想情况下,这最终将与扫描中的LRU一致。

由于DAX直接从高速缓存中读取数据,仅检查布尔高速缓存命中或未命中,并且不验证内容。唯一可能的方法是让网站上提到的客户端逻辑处理该问题。