To make sure that we are on the right track. You do get the deadline
ExceededException on the get statement and the work upto that
statement do not cost so much time (you have verified this by
profiling/ checking timestamps of log statement)

I primarily develop in Java, but what I understand from Python the
get() has an implied fetch limit of 1. You are performing a single
equality filter on an indexed property (GAE requirement) with no
ordering therefore no index iterating, no zigzag join and no large
data transfers are done. This should always be fast. Not as fast as
querying on primary key, but close anyway.

In case there are long running operations, like URL fetch on external
sites and large data transfer, performing the operation offline by
means of TaskQueue is good suggestion because then the deadline is not
30 sec, but 10 minutes. In case of large volume processing, you might
consider the MapReduce framework.

But again, your initial post doesn't indicate that to be the case and
the problem purely to be on the database get.
Does the problem happen always/often or was it just a fluke and was
there some temporary overall bad performance on the datastore? Is the
get part of a transaction? (it shouldn't matter because you are not
querying by ID, but just to be thorough;)

Regards,

Erwin

On 27 apr, 17:38, Noah McIlraith <[email protected]> wrote:
> Look into storing the user inside the key (key name), that way you will be
> able to very quickly grab the entity from the datastore (without needing to
> query).

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to