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 数据存储错误 - 索引未同步的主要内容,如果未能解决你的问题,请参考以下文章

如何在 appengine 实体中存储可索引列表/集合?

App Engine:如何“重置”数据存储区?

IntelliJ Maven 错误:存储库是非关联存储库,或未编入索引

谷歌 Appengine 数据存储 - python

在 Appengine 数据存储中设置操作

Ktor App 部署到 AppEngine 时未调用 Main 方法