On 17/06/2009, ecognium <ecogn...@gmail.com> wrote: > > Thanks, Nick. Yes I am already using a similar approach to paging. I > did not know about this module, which probably can replace what i have > written so will definitely look into that. Btw, the link to the > pager.py file is down so here the google cache link to the required > class: > > > http://74.125.155.132/search?q=cache:23LPEeO2oHIJ:https://bitbucket.org/moraes/appengine/src/tip/pager.py+PagerQuery+app+engine&cd=5&hl=en&ct=clnk&gl=us&client=firefox-a > > I also grabbed the source and put it on drop.io: http://drop.io/pagerquery > > Regarding the zip based filtering I was trying to do something like: > assuming I know the lat/long of the zip code of interest then this > simple query will get nearby zip codes (square region), which can be > filtered down by using a great circle algo... > > SELECT * FROM ZipData WHERE latitude >= x AND latitude <= y AND > longitude >= r AND longitude <= s > > As I understand the above query cannot be executed on Datastore due to > the multiple inequality operator use. If you think there is another > way to get the same result (that will work with datstore), please let > me know.
http://groups.google.com/group/google-appengine/search?hl=en&group=google-appengine&q=geohash+OR+mutiny&qt_g=Search+this+group > > #2: > Yup, I meant just keeping the session. I did not think of memcache > and was just thinking about how the application itself is cached. It > makes more sense just to use memcache so I can control the process. > Thanks for your suggestion. > > -e > > On Jun 17, 3:09 am, "Nick Johnson (Google)" <nick.john...@google.com> > wrote: > > Hi ecognium, > > > > > On Wed, Jun 17, 2009 at 9:17 AM, ecognium <ecogn...@gmail.com> wrote: > > > > > Hi All, > > > My application requires certain types of query features that are > > > not currently possible through Datastore API and so I am thinking of > > > moving the query side of things to Anazon's SimpleDB (mainly use it to > > > return keys). For example, I would like to return entities that are > > > within a certain zip code range while supporting pagination. Since key > > > based paging takes the only inequality operator allowed, it is not > > > possible to do the traditional zip based retrieval. Even without > > > paging there is no way to have two inequality operator. Hence the > > > switch to SimpleDB -- let me know if there are any nice workarounds > > > for zip-based data retrieval. > > > > > You may want to check this > > out:http://appengine-cookbook.appspot.com/recipe/efficient-paging-for-any... > > > > > > > > > > I have two questions for App Engine members: > > > > > 1. Have you noticed any major latency issues in accessing SimpleDB > > > from App Engine (thinking of using Boto module)? If so, any tips on > > > how to reduce it? > > > > I haven't personally used SimpleDB, but the same caveats apply as with any > > other service accessed over HTTP - latency is dependent on the service and > > its proximity. > > > > > > > > > 2. When I tested SimpleDB from my dev machine, I noticed SimpleDB > > > takes up to 5 seconds to return results -- most of the time is > > > actually spent in authorizing the request. So I would like to initiate > > > the connection once in the app and reuse the object for all subsequent > > > queries. Where should I do this initialization? I am not familiar with > > > how App Engine caches the application. Should I create a > > > amazon_login.py, include the logic for auth (two lines of code) and > > > import the file in my code? or do I need to put it in a class and > > > instantiate the class in the same file? > > > > When you say "initiate the connection once", are you referring to an actual > > TCP connection, or to a 'session'? I presume the latter, since SimpleDB is > > HTTP based. > > > > urlfetch doesn't let you control the lifetime of the underlying TCP > > connection for HTTP requests. If you're obtaining an authentication token, > > though, you can certainly do that on the first request to a given runtime, > > and then cache the result in a global or class-level variable, or cache it > > in memcache and reuse it across multiple instances. > > > > -Nick Johnson > > > -- Barry - www.nearby.org.uk - www.geograph.org.uk - --~--~---------~--~----~------------~-------~--~----~ 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-appengine@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 -~----------~----~----~----~------~----~------~--~---