*** tpb has joined #melange | 00:00 | |
*** SRabbelier has quit IRC | 02:06 | |
*** SRabbelier1 has joined #melange | 02:06 | |
*** nuba has quit IRC | 02:08 | |
*** nuba_ has joined #melange | 02:08 | |
SRabbelier1 | danderson: delayed pong | 07:12 |
---|---|---|
*** dhaun has joined #melange | 09:41 | |
danderson | SRabbelier1: re-ping :) | 11:10 |
*** MatthewWilkes has joined #melange | 14:17 | |
SRabbelier1 | danderson: lol, re-pong | 17:33 |
danderson | hi | 17:33 |
danderson | still there? :P | 17:33 |
SRabbelier1 | danderson: yarrr | 17:33 |
danderson | yay! | 17:33 |
MatthewWilkes | SRabbelier1, danderson: hi! | 17:51 |
SRabbelier1 | MatthewWilkes: heya | 17:51 |
danderson | hai! | 17:54 |
MatthewWilkes | how goes? | 17:55 |
danderson | pretty good, you? | 17:56 |
MatthewWilkes | Good, enjoying doing some hacking this weekend :) | 17:57 |
danderson | same | 17:57 |
danderson | dancing with threads in C++ and going mildly nuts in the process | 17:57 |
SRabbelier1 | MatthewWilkes: noice! | 17:57 |
SRabbelier1 | danderson: sounds like _oodles_ of fun | 17:58 |
danderson | SRabbelier1: ah, but the goal is noble | 17:58 |
danderson | make something synchronous and single threaded into something asynchronous and multicore | 17:58 |
danderson | epic scalability! | 17:58 |
danderson | ... except when it deadlocks | 17:58 |
danderson | like now :P | 17:58 |
MatthewWilkes | danderson: Is it something that is useful to be epicly scalable? | 17:59 |
*** dhaun1 has joined #melange | 17:59 | |
SRabbelier1 | danderson: noice! :P | 17:59 |
SRabbelier1 | danderson: deadlocks are not so nice, indeed | 17:59 |
danderson | MatthewWilkes: given that this was DoSed a few days ago by a slashdotting of sorts, yes. | 18:00 |
danderson | :P | 18:00 |
danderson | it fails at scaling | 18:00 |
MatthewWilkes | danderson: Hmm, what was it? | 18:00 |
SRabbelier1 | danderson: scaling fail sounds fun :P | 18:01 |
danderson | some google stuff, you'll understand if I remain unspecific as to which piece can get DoSed out of existence :P | 18: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 load | 18:02 |
danderson | (actually it's not that bad, we can cope by recruiting more servers, but it's hugely wasteful) | 18:02 |
MatthewWilkes | hehe, sure | 18:02 |
danderson | but 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 everyone | 18:03 |
MatthewWilkes | indeed | 18:03 |
SRabbelier1 | danderson: how are you going to fix that? | 18:08 |
danderson | SRabbelier1: by making it all completely asynchronous | 18:08 |
danderson | google://C10K problem | 18:08 |
danderson | a synchronous system can only scale to a point using a thread-per-request model | 18:08 |
SRabbelier1 | C10K? | 18:08 |
*** dhaun has quit IRC | 18:08 | |
danderson | how to handle 10k concurrent connections on a single machine | 18:08 |
danderson | some research by Dan Kegel on scalable network software | 18:09 |
danderson | yaaay | 18:09 |
danderson | assertion failure and epic crash :( | 18:09 |
danderson | and of course, the assertion is a // Can't happen, but just in case... | 18:09 |
SRabbelier1 | danderson: sounds good :P | 18:09 |
danderson | oh, haha | 18:10 |
danderson | I just asserted on the inverse of the right condition | 18:10 |
* MatthewWilkes loves them | 18:10 | |
danderson | "When starting an RPC, assert that you have already started it" | 18:10 |
danderson | yeah, that's going to work. | 18:10 |
danderson | oh, wait, no, that should have worked | 18:11 |
danderson | shit. | 18:11 |
MatthewWilkes | stepping 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 |
danderson | yeah, good times | 18:12 |
danderson | in this case fortunately, it looks like something straightforward | 18:12 |
danderson | the assertion kicked in before the "I'm now juggling 42 parallel operations with subtle locking" phase | 18:12 |
danderson | so the state is pretty simple :) | 18:12 |
danderson | ooops | 18:13 |
danderson | yeah, there we go. | 18:13 |
danderson | omg omg omg it worked | 18:15 |
danderson | I think. | 18:15 |
MatthewWilkes | hehe | 18:15 |
MatthewWilkes | btw, does anyone know if it's easy to get patches to the appengine SDK accepted? | 18:15 |
danderson | no idea | 18:30 |
danderson | ooh yeah | 18:31 |
danderson | this is good | 18:31 |
danderson | one thread assertion fails, while the other simultaneously segfaults | 18:31 |
danderson | good times. | 18:31 |
danderson | (and useless logs) | 18:31 |
*** dhaun1 has quit IRC | 18:36 | |
*** MatthewWilkes has quit IRC | 18:36 | |
*** nuba_ has quit IRC | 18:36 | |
*** SRabbelier1 has quit IRC | 18:36 | |
*** dhaun1 has joined #melange | 18:36 | |
*** MatthewWilkes has joined #melange | 18:36 | |
*** nuba_ has joined #melange | 18:36 | |
*** SRabbelier1 has joined #melange | 18:36 | |
danderson | ah, well, yeah. | 18:37 |
danderson | firing a null callback | 18:37 |
danderson | NULL() -> fail | 18:37 |
*** matthewwilkes_ has joined #melange | 18:37 | |
*** MatthewWilkes has quit IRC | 18:38 | |
*** matthewwilkes_ is now known as MatthewWilkes | 18:38 | |
*** durin42 has joined #melange | 18:55 | |
*** ChanServ sets mode: +v durin42 | 18:55 | |
*** dhaun1 has quit IRC | 18:57 | |
* MatthewWilkes submits a patch http://code.google.com/p/googleappengine/issues/detail?id=778 | 19:02 | |
tpb | <http://ln-s.net/4MGA> (at code.google.com) | 19:02 |
MatthewWilkes | hmmm, ah, it seems there has never been a patch accepted for the Python SDK | 19:07 |
*** SRabbelier1 has quit IRC | 19:16 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!