Number of users in a game:
 

522
577
575
602
623
653
259   <----- WTF ?
684

 
 
So, queries are still slow/lazy/bad/don't work properly..... Grrrr.
 
The fail list:
 - use a synchronised cron job to reap Score() ..... had to build my own 
NTP query engine because cron is unreliable under load
 - save object in a put() and query for it later .... fails to get all 
objects
 - push objects into a PULL queue and get them using a backend .... 4-10 
second delay before things can be seen in the PULL queue
 - Cloud SQL ... client submission tops out around 500 entries.... then the 
backend cannot connect to reap the results!
 - keep Score objects in the DB and just update them ..... they dont get 
found in a query
  - in memory backend .... requires MANY back end instances and does not 
scale automatically
 
Anyone have any other possibilities to try ?
 
-R
 

On Friday, August 3, 2012 5:08:31 PM UTC-4, Richard wrote:

> Currently moved to the following:
>  
> Lightweight Score() db object has a timestamp with the following:
>   timestamp = db.DateTimeProperty(auto_now=True)
>  
> B1 backend reaps all Score()'s with a timestamp < 1 min old.
>  
> 20 secs after the reap, the B1 deletes all Score()'s with timestamp at 
> least 10 min old.
>  
> My theory is:
>  - When the DB is playing up and creating a Score() is VERY slow and so 
> they don't show up in queries... having an 'old' Score() already there will 
> make the put() strongly consistent and force an instant update.
>  - Queries based on a timestamp diff will then return the Score
>  - It may take 1 round for a player to get into the leaderboard, since the 
> first put() will take some time for things to settle.
>  
> Coments/thoughts ?
>  
> Any
> On Friday, August 3, 2012 4:34:02 PM UTC-4, Richard wrote:
>
>> Ditched Cloud SQL.  Went back to the old system of savign lightweight DB 
>> objects.  I have no idea what to do tonight when DB queries stop working 
>> again (like they do every night for the last week!)
>>  
>>
>> On Friday, August 3, 2012 3:55:01 PM UTC-4, Richard wrote:
>>
>>> Well, Cloud SQL is NOT the answer.... it is topping out around 500 
>>> users.  The extra's don't make it into the DB within the 10 second window.  
>>> Then they get shown in the next window.
>>>
>>> I can 'fix' this by silently deleting the extra's and doing a client 
>>> update that will insert the user into the results leaderboard if they are 
>>> not there.  HOWEVER, the user's stats will then possibly be wrong (best 
>>> game/etc).
>>
>>

-- 
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/-/Jmu7SkNGZxQJ.
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