【发布时间】:2014-03-25 22:16:04
【问题描述】:
我知道对 GAE 数据存储的查询通常是最终一致的。但是我不明白为什么对 __key__ 的查询不应该是强一致的,因为我认为这是数据存储区 Get 函数使用的。
谁能确认__key__的查询是强一致的?
【问题讨论】:
-
我会严重怀疑它。您仍在对索引进行操作,在这种情况下是键的索引,而不是其他一些属性。该索引仍使用与所有其他索引相同的一致性规则进行更新。
-
我可以想象
__key__索引由数据存储put操作特殊处理,因此put仅在更新后才返回。因此可以保证put和get操作之间的强一致性。 -
我不这么理解。 get 不需要索引,您执行的查询需要索引。如果您不相信,请运行一些测试。
-
测试完成! .即使使用了
__key__过滤器,没有祖先过滤器的查询也只会返回最终一致的结果。你甚至不能在事务中使用它(就像任何其他无祖先查询一样)所以基本上__key__或任何其他无种类查询在一致性方面没有区别。 -
@themihai awesome - 确凿的证据。
标签: java php python google-app-engine go