我在 GAE 数据存储实验中发现了一些相当奇怪的东西。我使用的是 GAE SDK 1.7.5。 而且我不确定我的发现是否正确。
基本上,我发现将实体放入数据存储区并进行计数不会返回正确的值,直到执行数据存储区获取为止。
如果你想深入挖掘,这里是我之前的 SO 问题的实际代码:
Persistence strategies for High Replication environment (Google App Engine)
我也用类似的库尝试过:https://github.com/koher/Koherent-App-Engine-Library-for-Java
我也有同样的发现。任何人都可以帮我澄清我看到的这个问题吗?
最佳答案
我假设您在启用了最终一致性的本地开发服务器上获得了此结果?
由于数据存储的最终一致性行为,您无法获得正确的计数。事情就是这样。
在开发服务器上,像 get() 这样的一致操作将导致后续查询显示一致的结果。这与生产服务器的行为不太一样。
关于java - 在获取实体之前,实体计数不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15927951/