Google App Engine中的分片列表

时间:2011-09-13 00:33:27

标签: java google-app-engine

在我的一个App Engine应用程序中,我需要为一种类型的所有实体编译一个键列表,并将它们放入一个列表中。我以前只是运行一种类型的查询,但它根本没有扩展,我遇到了堆错误。我已经考虑过使用分片列表来解决这个问题,在更新数据集时添加和删除密钥,但是我遇到了一些问题让它起作用。

  • 应用引擎中是否可以使用分片列表?
  • 是否有更好的方法从分片列表中删除对象而不是搜索每个分片?
  • 有没有更好的方法来获得所有类型的密钥?

1 个答案:

答案 0 :(得分:0)

你的内存不足表明你要么不是只查询密钥,要么就是你有很多这样的实体。无论哪种方式,你可能有太多不能一次显示,所以我假设你将做一些形式的分页。

这是游标的理想用例。发出查询,读取一个页面的键(或整个实体),用HTML呈现它,并询问查询是否有游标。保存光标。当用户页面时,重新发出相同的查询,并告诉它从保存的光标开始。游标不依赖于索引,因此删除已从查询中获取的任何实体都不会搞砸。如果用户在一页之后失去兴趣,则不会支付用于阅读整个键列表的命中。

http://code.google.com/appengine/docs/java/datastore/queries.html#Query_Cursors