Saturday, 2009-10-10

*** tpb has joined #melange00:00
*** SRabbelier has quit IRC02:06
*** SRabbelier1 has joined #melange02:06
*** nuba has quit IRC02:08
*** nuba_ has joined #melange02:08
SRabbelier1danderson: delayed pong07:12
*** dhaun has joined #melange09:41
dandersonSRabbelier1: re-ping :)11:10
*** MatthewWilkes has joined #melange14:17
SRabbelier1danderson: lol, re-pong17:33
dandersonstill there? :P17:33
SRabbelier1danderson:  yarrr17:33
MatthewWilkesSRabbelier1, danderson: hi!17:51
SRabbelier1MatthewWilkes: heya17:51
MatthewWilkeshow goes?17:55
dandersonpretty good, you?17:56
MatthewWilkesGood, enjoying doing some hacking this weekend :)17:57
dandersondancing with threads in C++ and going mildly nuts in the process17:57
SRabbelier1MatthewWilkes: noice!17:57
SRabbelier1danderson: sounds like _oodles_ of fun17:58
dandersonSRabbelier1: ah, but the goal is noble17:58
dandersonmake something synchronous and single threaded into something asynchronous and multicore17:58
dandersonepic scalability!17:58
danderson... except when it deadlocks17:58
dandersonlike now :P17:58
MatthewWilkesdanderson: Is it something that is useful to be epicly scalable?17:59
*** dhaun1 has joined #melange17:59
SRabbelier1danderson: noice! :P17:59
SRabbelier1danderson: deadlocks are not so nice, indeed17:59
dandersonMatthewWilkes: given that this was DoSed a few days ago by a slashdotting of sorts, yes.18:00
dandersonit fails at scaling18:00
MatthewWilkesdanderson: Hmm, what was it?18:00
SRabbelier1danderson: scaling fail sounds fun :P18:01
dandersonsome google stuff, you'll understand if I remain unspecific as to which piece can get DoSed out of existence :P18:01
MatthewWilkes"We have a patient here that's bleeding!  What are you going to do to STOP THE BLEEDING?!" - v. important client on why a site died hard under heavy load18:02
danderson(actually it's not that bad, we can cope by recruiting more servers, but it's hugely wasteful)18:02
MatthewWilkeshehe, sure18:02
dandersonbut it's sad to use 50 servers (all numbers used are pulled out of my ass and bear no resemblence to reality) where 1 should be able to max out its I/O and serve everyone18:03
SRabbelier1danderson: how are you going to fix that?18:08
dandersonSRabbelier1: by making it all completely asynchronous18:08
dandersongoogle://C10K problem18:08
dandersona synchronous system can only scale to a point using a thread-per-request model18:08
*** dhaun has quit IRC18:08
dandersonhow to handle 10k concurrent connections on a single machine18:08
dandersonsome research by Dan Kegel on scalable network software18:09
dandersonassertion failure and epic crash :(18:09
dandersonand of course, the assertion is a // Can't happen, but just in case...18:09
SRabbelier1danderson: sounds good :P18:09
dandersonoh, haha18:10
dandersonI just asserted on the inverse of the right condition18:10
* MatthewWilkes loves them18:10
danderson"When starting an RPC, assert that you have already started it"18:10
dandersonyeah, that's going to work.18:10
dandersonoh, wait, no, that should have worked18:11
MatthewWilkesstepping through code in a debugger and seeing comments such as "This only happens in the pathological case", "This shouldn't happen" or "Huh?  Why did that happen?"18:11
dandersonyeah, good times18:12
dandersonin this case fortunately, it looks like something straightforward18:12
dandersonthe assertion kicked in before the "I'm now juggling 42 parallel operations with subtle locking" phase18:12
dandersonso the state is pretty simple :)18:12
dandersonyeah, there we go.18:13
dandersonomg omg omg it worked18:15
dandersonI think.18:15
MatthewWilkesbtw, does anyone know if it's easy to get patches to the appengine SDK accepted?18:15
dandersonno idea18:30
dandersonooh yeah18:31
dandersonthis is good18:31
dandersonone thread assertion fails, while the other simultaneously segfaults18:31
dandersongood times.18:31
danderson(and useless logs)18:31
*** dhaun1 has quit IRC18:36
*** MatthewWilkes has quit IRC18:36
*** nuba_ has quit IRC18:36
*** SRabbelier1 has quit IRC18:36
*** dhaun1 has joined #melange18:36
*** MatthewWilkes has joined #melange18:36
*** nuba_ has joined #melange18:36
*** SRabbelier1 has joined #melange18:36
dandersonah, well, yeah.18:37
dandersonfiring a null callback18:37
dandersonNULL() -> fail18:37
*** matthewwilkes_ has joined #melange18:37
*** MatthewWilkes has quit IRC18:38
*** matthewwilkes_ is now known as MatthewWilkes18:38
*** durin42 has joined #melange18:55
*** ChanServ sets mode: +v durin4218:55
*** dhaun1 has quit IRC18:57
* MatthewWilkes submits a patch
tpb<> (at
MatthewWilkeshmmm, ah, it seems there has never been a patch accepted for the Python SDK19:07
*** SRabbelier1 has quit IRC19:16

Generated by 2.17.2 by Marius Gedminas - find it at!