Google Appengine Python中的索引错误问题

Google Appengine Python中的索引错误问题,python,google-app-engine,indexing,Python,Google App Engine,Indexing,我们有一个Google appengine Python应用程序,它已经运行了1.5年。 我们在Python应用程序中使用现成的NoSQL DB 但突然之间,我们发现了与指数相关的错误。我们多次删除并重新安装索引,但在“构建”之后,它会自动进入“错误”状态。需要帮助调试它 索引的解剖: 索引包含2个StringListProperty字段、1个日期对象、1个字符串、1个布尔值和1个浮点值对象。 其他索引中也使用了相同的字段,这些索引似乎运行良好。如果您从管理控制台(如下所示)查看快照,它会显示一

我们有一个Google appengine Python应用程序,它已经运行了1.5年。 我们在Python应用程序中使用现成的NoSQL DB

但突然之间,我们发现了与指数相关的错误。我们多次删除并重新安装索引,但在“构建”之后,它会自动进入“错误”状态。需要帮助调试它

索引的解剖:

索引包含2个StringListProperty字段、1个日期对象、1个字符串、1个布尔值和1个浮点值对象。 其他索引中也使用了相同的字段,这些索引似乎运行良好。如果您从管理控制台(如下所示)查看快照,它会显示一些其他正常工作的索引

- kind: UserRideRequests
  properties:
  - name: date_of_start
  - name: end_cells
  - name: is_cancelled
  - name: request_type
  - name: start_cells
  - name: time_of_start_as_number
下面2幅图片-索引和数据存储统计信息


根据您对“随机”发生的错误的描述,这听起来像是某种并发问题。您是否考虑过某些DB操作不是原子操作,并且当GAE上的应用程序的多个实例试图同时访问DB时,DB处于非确定性状态(最终导致您提到的错误)?此外,您是否绝对确定您的应用程序是100%无状态的(内存中没有变量,所有内容都存储在DB中并从DB中加载)?您应该使用
@DB.transactional
@barakmanos来修饰必须确保DB原子操作的方法谢谢您的建议。让我试试。是的,我们是100%无国籍的。我们不缓存任何元素。如果我们想在内存中缓存一些东西,我们使用“Memcache”。那么数据库操作的原子性呢?