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.

Reply via email to