使用400键调用DatastoreService.delete(keys)时,我会遇到以下异常:
java.lang.IllegalArgumentException:数据存储区事务或写得太大。
我认为批量删除的限制是500,所以我完全不受限制。我在这里错过了什么吗?
谢谢, Keyur
答案 0 :(得分:0)
看起来你达到了放置和删除的整体大小限制。你是对的,批量放置和删除有500个实体的限制,但总体大小限制大约为10MB。我不确定是否有记录,但如果没有,我会检查并添加它。
所以,尝试减少每次删除调用的实体数量。
如果你想深入挖掘,放置或删除的大小取决于超出单个实体大小的许多因素,例如:需要更新的索引行的大小。它通常也基于更新本身的增量大小,而不是现有实体的大小。这意味着它并不总是直观或易于计算。这些文章可以提供帮助:
http://code.google.com/appengine/articles/storage_breakdown.html
http://code.google.com/appengine/articles/life_of_write.html