这个奇怪的案件在最近两天已经发生过两次了。
我使用数据存储管理删除所有实体,不超过100个,以便稍后使用remote_api_shell
重新上传数据库,但在请求后数据存储区写操作达到了限制:
这是自上次24小时重置以来我做的第一次也是唯一的一次操作。
当我尝试remote_api_shell
个新实体时,put
也会报告错误。
欢迎任何建议。
这里的模型,没有什么大的......
class Brand(BaseModel):
'''
Brand class
`Marca` in Etax db
'''
name = db.StringProperty()
abbr = db.StringProperty()
def __repr__(self):
return ('<Brand {0} instance at {1}>'
.format(self.abbr.encode('utf-8'), hex(id(self))))
class Model(BaseModel):
'''
Model class
`Gamma` in Etax db
'''
name = db.StringProperty()
code = db.IntegerProperty()
brand = db.ReferenceProperty(Brand, collection_name='models')
def __repr__(self):
return ('<Model {0} instance at {1}>'
.format(self.code, hex(id(self))))
class TrimLevel(BaseModel):
'''
Trim Level class
`Modello` in Etax db
'''
name = db.StringProperty()
etax_code = db.IntegerProperty()
start_production_date = db.DateProperty()
end_production_date = db.DateProperty()
retail_buy_prices = db.ListProperty(int)
retail_sell_prices = db.ListProperty(int)
list_prices = db.ListProperty(int)
model = db.ReferenceProperty(Model, collection_name='trim_levels')
fuel_supply = db.StringProperty()
gear_shift = db.StringProperty()
gear_speeds = db.IntegerProperty()
doors = db.IntegerProperty()
seats = db.IntegerProperty()
kw = db.IntegerProperty()
def __repr__(self):
return ('<TrimLevel {0} instance at {1}>'
.format(self.etax_code, hex(id(self))))
答案 0 :(得分:1)
如果你看一下billing docs,那么高级删除需要几个低级写操作:
Entity Delete (per entity): 2 writes + 2 writes per indexed property value + 1 write per composite index value
因此,如果100个实体删除使用了50k写操作,则意味着您的每个实体都有500个索引条目。
当实体具有大型列表属性或具有跨越多个列表属性的复合索引(=爆炸索引)时,可能会发生这种情况
您是否定义了任何复合索引?您的实体有哪些属性?