为什么通过简单的管理批量删除达到了我的写入配额?

时间:2013-02-14 12:47:13

标签: google-app-engine google-cloud-datastore

这个奇怪的案件在最近两天已经发生过两次了。

我使用数据存储管理删除所有实体,不超过100个,以便稍后使用remote_api_shell重新上传数据库,但在请求后数据存储区写操作达到了限制:

enter image description here

这是自上次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))))

enter image description here

1 个答案:

答案 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个索引条目。

当实体具有大型列表属性或具有跨越多个列表属性的复合索引(=爆炸索引)时,可能会发生这种情况

您是否定义了任何复合索引?您的实体有哪些属性?