On Dec 1, 9:55 am, Eric Rannaud <eric.rann...@gmail.com> wrote: > Athttp://www.911pagers.org/, a relatively simple query such > ashttp://www.911pagers.org/#rangeId0-128, which does: > > SELECT * FROM MessageS where id >= 0 && id < 128 order by id > > and fetches 128 entities, takes anywhere between 1s and 4s, usually > around +2.5s, measured on the server, in wall-clock time, with the > following code: > > Calendar c = Calendar.getInstance(); > long t0 = c.getTimeInMillis(); > qmsgr = (List<MessageS>) qmsg.execute(lo, hi); > System.err.println("getCMIdRange:qmsg: " + (c.getTimeInMillis() - t0)); > > id is not the primary key of MessageS, but a 'long' field, _unique_ in > each entity (so it maps 1-to-1 with the entities). Note: such a query > doesn't require a specific index. > > There are about 500,000 MessageS entities in the datastore, for a > total of 140 MB, excluding metadata (of which there are about 85 MB). > > Repeating the same request several times in a row doesn't improve > response time. The delay has been pretty consistent over several days. > Note again that the delay is measured on the server, the latency of my > connection is not a factor. > > I am aware App Engine is a preview and all, but 2.5s, really? > > I can find the data faster in a text file split across 4 machines over > a shared Ethernet 10Mb with a bunch of Python for loops running on > OLPC XOs, for $DEITY's sake.
Are you fetching all 128 entities in one batch? If you don't, the result is fetched in batches of 20, incurring extra disk reads and rpc overhead. Not sure how you do that with the Java API, but with python you pass '128' to the .fetch() method of a query object. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.