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.
