I'm not sure why memcache would have stale data. Maybe a datastore query is some how responsable. The hrd is only strongly consistent when querying by key.
As for Go, if I'm going to evangelize I should probably back it up. I put together a sample app to demonstrate it's concurrence. *Interface:* http://goscore.scotch-media.appspot.com/ *Source:* https://github.com/scotch/goscore/blob/master/server/http.go *Leader Board JSON:* http://goscore.scotch-media.appspot.com/leaders The Go runtime uses goroutines<http://golang.org/doc/effective_go.html#goroutines> to handle request. So in theory it should be able to handle 1000's of request/second. I would be interested to see if this holds true on a 500Mhz virtual box. Feel free to DDOS the *Leader Board JSON<http://goscore.scotch-media.appspot.com/leaders> URL* I have the app set to 1 instance - so any latency will be from 1 instance handling all of the request. If you are still seeing the "Request was aborted" then App Engine must have some type of throttle in place. - Kyle On Sunday, July 8, 2012 8:19:04 PM UTC-5, Richard wrote: > > I could if memcache actually worked. But it does not. I originally tried > to use it and found that I could not push the game state to memcache and > then have the other instances pull it. They would get versions of it that > were up to 5 minutes old. My timings are 5 second windows. > 5 secs to submit all scores > 5 secs to reap scores and calc leaderboards > 5 secs to fan out results to clients > > Experience shows that memcache is just broken for that sort of timing. > > As for using Go instead of Python. I am not sure I follow why Go should > be better. The lag is not coming from CPU or queries. > > Right now I am running 50 instances to serve 500 game clients. $48 for the > last 18 hours. 11% of my requests result in "Request was aborted". Yeah, > that is 12 THOUSAND fails. > > Back in the year 1995, ftp.cdrom.com could serve 2000 clients > simultaneously on a Pentium Pro 200MHz .... and I cannot serve 20 clients > on a 500Mhz virtual box ? > > I still contend there is some internal throttling going on somewhere. > > -R > > > > On Sunday, July 8, 2012 6:23:02 PM UTC-4, Kyle Finley wrote: >> >> Richard, >> >> Another option would be to move the Game State request to a >> Go<https://developers.google.com/appengine/docs/go/overview> instance, >> either as a >> backend<https://developers.google.com/appengine/docs/go/config/backends>or >> as a separate version. I believe a single Go instance should be able the >> handle 500 request / second. You could then share the Game State between >> the Python version and the Go version through Memcache, cacheing to >> instance memory every 5 sec. >> >> - Kyle >> > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/PFW42x1I0M0J. 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.
