Chat log from today's App Engine office hours. All times are in AEST (UTC+10).
12:01 -!- Irssi: #appengine: Total of 115 nicks [0 ops, 0 halfops, 2 voices, 113 normal] 12:01 < jwbnyc> Thanks for joining, us Wesley! 12:01 < Wesley_Google> who? where? 12:01 < robertk> Wesley_Google: there -> 12:01 < robertk> ;) 12:02 <+gregdarke> Hey all 12:02 < johnlockwood> howdy 12:02 < mbw> ok, ive got one. Have you guys made any changes (improvements) in parallel db.get across entity groups on HRD? We had a developer testing async db.get and we were just wondering if that has gotten better yet. 12:02 < robertk> so what do you work on dave_google? don't remember seeing you around here 12:02 < dave_google> i'm on app engine 12:03 < dave_google> wes usually schedules these for when i can't make it. :) 12:03 < Wesley_Google> mbw> you mean batch get by key? 12:03 < jwbnyc> For our part, we're butting up against issues of code size. We're starting to encounter difficulty due to instance startup times. 12:03 < mbw> Wesley_Google: yep 12:03 < robertk> yeah which part of AE? gregdarke is a task queue guy, wesley is dev rel... just want to know which questions to direct at you :) 12:04 < dave_google> a bit of this, a bit of that. ask your question, and the right person will chime in. 12:05 < Wesley_Google> thanks dave!! (no, these are pre-scheduled all the time... it's either 7-8p PDT or 9-10a PDT) 12:05 < mbw> Wesley_Google: I know we have spoken to you guys about this before and you said things where being done to improve performance of that... since it was very slow comparead to master slave (when we first started using it... we havent done much benchmarking lately and didnt really notice a change) 12:05 < dave_google> 9am exists as an abstraction. 12:07 < jwbnyc> Has anyone been able to get a handle on where the initialization time goes? Our effort have shown wide differences between the Java dev server and GAE in terms of how our initial request performs. 12:07 < ronoaldojlp> I'm experiencing some instances startup latency, and posted an issue today. Does someone else is having the same issues too? 12:07 < robertk> mbw: when i was poking around in the sdk i did notice that they are putting in the code to auto parallelize the rpcs now 12:08 < ronoaldojlp> our Java instances usually take 3-6 sec to startup, but some of them throws (Hard)DeadlineExceededExceptions 12:09 < jwbnyc> ronoaldojlp: We've been trying to track down a similar set of issues. What's the URL for the issue you raised? 12:09 < mbw> robertk: right, but thats in the case where it would be too large to do it in one put right? 12:10 < robertk> mbw: nah, looked like something more general to me. judging by the comments at least 12:10 < mbw> robertk: which could be a bit scary actually since you could be writing them all to the same entitiy group, thus contention 12:10 < ronoaldojlp> jwbnyc: http://code.google.com/p/googleappengine/issues/detail?id=5477 12:10 < robertk> mbw: haven't dug as deeply as i wanted to yet though 12:10 < mbw> ya, who knows... frigen docs would be nice 12:10 < robertk> mbw: yeah there logic seemed to take entity groups into account 12:11 < dave_google> create an issue for where you want to see docs expanded. those do get listened to. 12:11 < robertk> mbw: seemed to break up the rpcs based on entity group -- there is now na entity_grpups_per_rpc (or something similar) config option 12:11 < jwbnyc> Thanks, Ron! I posted to the Appengine for Java group: https://groups.google.com/d/topic/google-appengine-java/rWfC6cypiwg/discussion 12:12 < robertk> mbw: here is one part of what i saw today: http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/datastore/datastore_rpc.py#488 12:12 < robertk> dave_google: mbw and i probably dig in a bit deeper than normal ;) 12:12 < robertk> dave_google: if you could get the internal comments left in when you push the code that would be great ;) 12:13 < ronoaldojlp> jwbnyc: we are trying to do some lazy initialization but not sure if there is any good "patter" on that area... we are using Google Guice to do a lot of work on that. 12:15 < JasonAtBobber> Anyone have thoughts on how best to profile GAE apps? Our initialization times are fairly short when run locally, but can be crazy-long when on AppEngine. Anyone use anything other than Appstats? AppWrench looked promising, except it appears to be dead. ;) 12:16 < ronoaldojlp> Googlers, is the "min idle instances" knob of the scheduler avaiable as preview? We're expecting a huge traffic tomorrow for a TV commercial and we thing that it may be a good Idea to leave some instances waiting ... Can I "emulate" it in a good way, by warming up some instances? 12:17 < robertk> what other scheduler config settings will be rolling out? i know min-idle-instances is planned. what about additional information to help us making decisions on scheduler settings, will there be more logging or analysis charts? 12:17 < robertk> and what is being done to increase qps per instance? 12:17 < robertk> 0.2 avg qps with a 100ms latency is a little ... low. 12:18 < dave_google> JasonAtBobber: i pretty much use appstats or hand-rolled timers. 12:18 < robertk> ronoaldojlp: always on will have 3 on stand by 12:18 < JasonAtBobber> Thanks Dave 12:20 < ronoaldojlp> robertk: thanks .. we have it enabled, but our app currently uses on a moderate qps (40) ~18 instances, and with the current Deadline exceptions we guess that it may be a good sense to have some more than 3. In fact, we expect that the scheduler wil start and keep more instances around to handle the traffic spyke. 12:22 < robertk> ronoaldojlp: ah, yeah you're worried about startup times. you're using warmup requests to start loading stuff, right? 12:22 < robertk> ronoaldojlp: i've had no issues popping from a couple hundred qps up to several thousand -- but that was with a short startup 12:23 < jwbnyc> The warmup is helpful. The problem is that we often encounter harddeadline exceeded even though on average, the request takes about 7sec. 12:24 < JasonAtBobber> Anyone else been running into user requests hanging for 20+ seconds? I'm looking at our logs, and in the middle of DataNucleus initialization it pauses for 25 seconds. This doesn't happen often, but often enough to be vexing. Is this just us? 12:25 < ronoaldojlp> robertk: yes ... I'm currently using a context listenner to setup my Guice injector ... 12:25 < robertk> there have been a few people posting to the groups with strange request times. several 10s of seconds with no real explanation 12:26 < johnlockwood> I've had startup request times of 18s 12:26 < robertk> yeah shit like that. 12:26 < mbw> wow 12:26 < robertk> what is your usual startup johnlockwood? 12:27 < jwbnyc> The behavior on our app feels a bit like a garbage-collection pause. Our app needs about 130K/instance - would it make sense to allow apps to specify an initial memory allocation? 12:27 < robertk> gregdarke: i heard the task dispatcher is getting revamped a bit and it will help reduce the frequency of queue-stalls. is the taskqueue pannel in the dashboard going to be adjusted to reflect when tasks are put back in the queue? 12:28 < robertk> hi ikai_google. you're being super quiet tonight. 12:28 < kebomix> guys, i use jdom library and looks like the servlet doesn't see it ! http://pastebin.com/mmcTXphx , how to solve this error ? 12:28 < JasonAtBobber> Not 130K, jwb... 130M ;) 12:29 < robertk> any googlers able to comment on my questions (above, ~22:17) ? 12:29 < Wesley_Google> ikai is going to be late or not coming tonight. or it's not 100% him. LOL 12:29 < robertk> ha ha. k. 12:30 <+gregdarke> robertk: What do you mean? There was a bug that partially caused http://code.google.com/p/googleappengine/issues/detail?id=5471 , but that is only an issue with long running tasks 12:30 < dave_google> kebomix: is the jdom jar in your WEB-INF/lib? 12:31 < johnlockwood> 200 28134ms 2218cpu_ms 118api_cpu_ms 12:32 < johnlockwood> this is what I just got, it use to be a few seconds max 12:32 < robertk> gregdarke: yeah sometimes even with fast taks (sub 600ms) i have queues stall out for a while while other queues keep chugging along 12:32 < robertk> gregdarke: is there any information we could be given that would help us diagnose slow queues when we encounter them? 12:32 < kebomix> dave_google: thanks i was only refering to it in another folder, i copied it to WEB-INF and it worked :) 12:33 < kebomix> btw it have been a week now and i still didn't get email from google to activate my java runtime ! is that normal? 12:33 < robertk> gregdarke: yeah from the detail on that issue, what i'm wondering is how will we know if tasks are getting dispatched then put back into the queue? 12:34 < robertk> gregdarke: it sounds like there is some change being made that will allow us to see that information? 12:34 < mbw> Our average for the last 24 hours, HRD/Python/big-ass-django-app on warmup requests is 4216 ms, not too bad, but not great either 12:34 < dave_google> kebomix: there's nothing special needed before deploying an app built with the java sdk. what do you mean by 'runtime'? 12:34 < JasonAtBobber> mbw: Is your info fine-grained enough to detect spikes? 12:35 < JasonAtBobber> I'm curious if the behavior is sporadic... 12:35 <+gregdarke> robertk: You can now see the enforced rate of a queue, that will allow you to see if your queue has been throttled. Though other than that, no. 12:35 < mbw> JasonAtBobber: yes, but this chart only shows me the average 12:36 < robertk> mbw: johnlockwood: interesting, my loading times (hr app) have went back down to what they were a couple months ago: 12:36 < robertk> ms=766 cpu_ms=324 api_cpu_ms=68 cpm_usd=0.009241 loading_request=1 12:36 < kebomix> dave_google: i mean access to google servers to deploy my app, i still have no access, working locally only 12:36 < robertk> they were higher, but seem to have went back down 12:36 < mbw> robertk: show off 12:37 < mbw> dtuckerames1: go for it, i havent asked yet 12:37 < robertk> mbw: now you know why i poo poo django :P 12:37 < johnlockwood> this one is a M/S robertk 12:37 < mbw> robertk: I honestly could care less about 4 measly seconds on a warmup call 12:38 < dtuckerames1> any updates on the monitoring APIs that we heard about at I/O? 12:38 < robertk> mbw: but that app is also optimized for loading times. has several separate wsgi entry points so it is only loading the sections needed 12:39 < jwbnyc> mbw: The problem we have isn't a few seconds. We're seeing a lot of cases where GAE decides to start an instance and then kills it because the warmup takes >20sec rather than the average 7sec. 12:40 < johnlockwood> I just wonder why 2 seconds of cpu time turn to 28 secs of realtiem 12:40 < mbw> kills it because its >20s or 30s? 12:40 < mbw> johnlockwood: thats a slow cpu 12:41 < johnlockwood> maybe my app is on 386 or something 12:41 < robertk> ha ha 12:41 < jwbnyc> Sorry, the total time is >30sec, there's an unexplained period between our filter and the first log entry from the warmup. 12:42 < robertk> johnlockwood: i've had apps find their way to a 'bad spot' in the cluster before where my startup times go from 700 or 800 ms to 3+ seconds 12:42 < Wesley_Google> jwbnyc> other users are reporting the same thing. are you using something big like Spring? do you have a lot of resource or static files? 12:42 < robertk> johnlockwood: no idea why it happens but eventually it seems to work itself out..... problem is that sometimes it has taken several weeks to do so. 12:43 < johnlockwood> I'm seeing a startup call that took 67s 12:43 < jwbnyc> Wesley_Google: We have a large number of static files: about 1700. We don't use Spring. 12:43 < johnlockwood> from earlier today 12:44 < robertk> johnlockwood: so guy in the groups posted one like that a couple days ago too 12:44 < robertk> *some 12:44 < johnlockwood> i've been seeing this happen for months 12:44 < johnlockwood> i'm using the builtin django 1.2 12:45 < robertk> ms=13226 cpu_ms=210 api_cpu_ms=0 cpm_usd=0.006032 loading_request=1 12:45 < mbw> johnlockwood: 67s, how is that possible? task? 12:45 < johnlockwood> in fact is was not long after I started using the builtin 1.2 12:45 < robertk> avg latency on that app is 138.8 ms 12:45 < robertk> it is a M/S app 12:45 < johnlockwood> at first it was faster, like 2 seconds 12:45 < robertk> serving a steady 10 qps 12:46 < robertk> mbw: no i've seen strange number mismatches like that too. 12:46 < robertk> mbw: i've seen them with silly latencies on user-facing loading requests 12:46 < johnlockwood> mbw not tasks, these are to the / of the site. I see 52s, 54s too 12:47 < johnlockwood> last time i brought this up I was told to use warming requests, but it's silly 12:48 < mbw> johnlockwood: you obviously need to use a warming request for your warming request. 12:48 < johnlockwood> mbw thanks for the advise 12:48 < johnlockwood> :) 12:48 < ronoaldojlp> Wesley_Google: does the Guice injector loading (and changing) bytecode a problem for the startup? I guess that it may try to read some data from the filesystem to setup some dependencies ... 12:48 < robertk> ha ha, Wesley_Google we need warmup warmup requests please ;) 12:49 < mbw> well, no answer on the Monitoring APIs huh? 12:49 < robertk> Wesley_Google: ^^ i would also like to know 12:50 < mbw> Logging improvements? (maybe thats another feature) 12:50 < robertk> gregdarke do you work with the guy who's doing the monitoring api? he's based in sydney, right? 12:50 < robertk> (can't recall his name) 12:51 < johnlockwood> the same code on HR has the same cpu usage, but the realtime is 3s 12:51 < johnlockwood> well I am meaning to move this over to HR 12:52 < mbw> robertk: you should ask njoyce to ask in Australian. Maybe they don't understand you. 12:52 <+gregdarke> mbw: I believe we are currently in trusted tester for the monitoring api at the moment, if you are interested can you give either myself or Wesley your contact details and we can look into it 12:52 < robertk> mbw: ha ha, need a translator ;) 12:52 < robertk> lets try "ello..." 12:52 < robertk> :P 12:52 <+gregdarke> robertk: s/ello/G'Day/ 12:53 < robertk> dtuckerames1: you see gregdarke's comment? 12:53 < mbw> gregdarke: we are interested in pretty much all TT. Can you have Chris Schalk contact us about it? (WebFilings) 12:53 < robertk> gregdarke: awesome :) 12:53 < vbabiy> Hey guys, is there any docs about google GAE from android? 12:53 < dtuckerames1> robertk: ya just saw it - will work through chris 12:53 < robertk> gregdarke: i'm ready to hit the streets of sydney now :) 12:53 < johnlockwood> robertk: don't you get TT automaticly for every appengine thing? 12:54 <+gregdarke> mbw: Sure, I will see what I can do 12:54 < mbw> TT is another topic... any effort into organizing that system so that everything can be done on a central site/page/signup, etc 12:54 < robertk> johnlockwood: apparently not... ha ha ;) 12:54 < robertk> yeah i thought we were going to get a dashboard to just click what we wanted to participate in? 12:55 < Wesley_Google> mbw> i'll ask chris to look into it for you 12:55 < robertk> :) 12:55 < mbw> Wesley_Google, gregdarke thanks guys. 12:56 < robertk> yeah thanks for your time *_google ;) 12:56 < johnlockwood> thanks Wesley_Google and gregdarke 12:56 < vbabiy> Sorry I am trying to find docs about using google auth from GAE in my android app, does google have any? 12:56 < Wesley_Google> sure no problem... thanks for coming guys, and thanks for your patience as we were shorthanded tonite 12:58 < vlad__> hi 12:58 < vlad__> is anyone still in? 12:58 < mbw> sure 12:58 < robertk> vbabiy: http://www.google.com/events/io/2011/sessions/android-app-engine-a-developer-s-dream-combination.html 12:58 < robertk> maybe that will help 12:58 < vlad__> are googlers still in? 12:58 <+gregdarke> vbabiy: There is this -> http://blog.notdot.net/2010/05/Authenticating-against-App-Engine-from-an-Android-app and the talk that robertk linked 12:59 < vlad__> i see they are 12:59 < vbabiy> gregdarke: I have not seen that one yet, I will review 12:59 < vlad__> Have a question about recently introduced 'instance' header 12:59 <+gregdarke> vlad__: There are usually a few who idle here, but the office hours has just finished 12:59 <+gregdarke> vlad__: What about it? 13:00 < vbabiy> I am looking for detailed docs since the session seem to skip a lot of details about auth key experation and such. 13:00 < Wesley_Google> so anyone who is running into this where your instances are getting killed due to long startup times pls add your comments to that ticket!! 13:00 < Wesley_Google> http://code.google.com/p/googleappengine/issues/detail?id=5477 13:00 < vlad__> I have a task putting a piece of data in memcache 13:00 < vlad__> then client request comes to pick up that data 13:01 < Wesley_Google> ok, i got to take off... thanks everyone for coming to office hours!! -- 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.