使用400个密钥调用DatastoreService.delete(keys)时,我得到以下例外:Google App Engine - “java.lang.IllegalArgumentException:数据存储事务或写入太大。”
java.lang.IllegalArgumentException:datastore事务或写入过大。
我认为批量删除的限制是500,所以我远远低于限制。我在这里错过了什么吗?
感谢, Keyur
使用400个密钥调用DatastoreService.delete(keys)时,我得到以下例外:Google App Engine - “java.lang.IllegalArgumentException:数据存储事务或写入太大。”
java.lang.IllegalArgumentException:datastore事务或写入过大。
我认为批量删除的限制是500,所以我远远低于限制。我在这里错过了什么吗?
感谢, Keyur
它看起来像你打整体大小限制看跌期权和删除。批量放入和删除有500个实体的限制是正确的,但总体大小限制大约为10MB。我不确定这是否有记录,但我会检查并让他们添加它,如果没有。
因此,尽量减少每次删除调用的实体数量。
如果您想深入挖掘,放置或删除的大小取决于超出各个实体大小的许多因素,例如,需要更新的索引行的大小。它通常也基于更新本身的增量大小,而不是现有实体的大小。这意味着它并不总是直观或容易计算。这些文章虽然可以帮助:
http://code.google.com/appengine/articles/storage_breakdown.html
http://code.google.com/appengine/articles/life_of_write.html