AppEngine 数据存储错误 - 索引未同步
Posted
技术标签:
【中文标题】AppEngine 数据存储错误 - 索引未同步【英文标题】:AppEngine datastore bug - indexes are not synced 【发布时间】:2013-10-25 15:35:18 【问题描述】:我刚才遇到了最奇怪的事情:
我尝试将实体放入 Cloud Datastore。 实体未到达数据库,但在按索引搜索时确实返回。
我的意思是:
Select * from EntityType
-> 不返回该行(尽管其他行返回)
Select * from EntityType where entityName = "xxx"
-> 确实返回行(在上一个查询中没有返回)
编辑:
即使在 Put() 一个多小时后,两个查询仍然返回不一致的结果
【问题讨论】:
你确定这不仅仅是最终的一致性吗?如果您再次尝试第一个查询,它现在有效吗? 同意@Daniel,除非您通过密钥或使用祖先查询,否则不一致更有可能是最终一致性的结果 我在 Put() 操作 10 分钟后尝试了这两个查询。不一致的时间段是否合理? Put() 后 20 分钟 - 仍然不一致 您是否尝试过对项目执行 get(),然后进行查询。如果这有所作为,那么它肯定是最终的一致性。 【参考方案1】:这是最终一致性的经典示例 - 虽然实体是同步写入的并且保证在查找时保持一致,但包括 Kind 索引在内的实体索引是异步更新的。
这通常在几毫秒内解决,但在极少数情况下,它可能会延长到几秒甚至一个小时。
【讨论】:
以上是关于AppEngine 数据存储错误 - 索引未同步的主要内容,如果未能解决你的问题,请参考以下文章