Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Mongrel2 Superpoll Experiment Step 1 (sheddingbikes.com)
21 points by chuhnk on Aug 7, 2010 | hide | past | favorite | 21 comments


> Most likely it's just contention on the machine between httperf and Mongrel2, but I'll try to rule it out.

In the same way that Zed gets angry at people who don't understand confounding, I get angry at people who run their benchmarking suites from the same machines that are serving them.


Marge: Homer, it's easy to criticize.

Homer: Fun, too.

Also, Fromt TFA:

  NOTE: In no way should you assume that I am proposing this 
   is a "real world" experiment. It is exploration. Just open 
   musing about what could be, not a doctoral research paper 
   published in Nature to get my Ph.D. Not a paper to a 
   medical journal on a new cancer treatment. This is a blog 
   with me talking about stuff I'm interested in. Adjust your 
   expectations accordingly.


Why would anyone read that far into the article. Here's how you comment on one of my articles if you want to karma whore with the neckbeard crew:

1. Skim through my post to see if there's any inflamatory headings, if there are stop there and just complain about that. Especially if there's a curse word. Extra points if you can demand I be banned for cursing.

2. Jump to the end where I have a little conclusion, and take it out of context, then come here and say my conclusion is wrong. Extra points if you mention "latency" or "cache lines" or that it would all be better if written in Haskell or Clojure.

3. Now start reading, but only read to find the first thing you can take out of context and say is wrong. Doesn't matter if I say it's wrong, or have a reason for doing it, all that matters is the sweet quote you can pump into a comment here for no real feedback value. Extra points if this comment mixes #1 and #2.

4. If all else fails, call me an asshole, cock, bile spewing turd, or many other things I have never called you. Usually there's a cabal of people who hate me and will get their pants tight over that so you'll have friends.

Interestingly enough, I write my articles so people who do these things look like idiots. For example, I know someone is going to scan through looking for a juicy quote that proves I was testing on localhost (like that's some unforgivable sin). That's why I put several comments about how I didn't care and was just confirming I didn't break anything after that quote. Or I make headlines that are inflammatory so people who don't read get caught commenting on how that's all the blog is. Or I make my conclusions hard to disconnect from the main article.

It's really just a huge game really, so have fun with it. I know I do. :-)


I'm (internally) trying to be equitable to all sides in this whole poll/epoll deba(te|cle) but really it does seem that many, many people aren't actually reading the articles they purport to be commenting on. It's frustrating and disappointing.


Fuck that! I was totally going to use mongrel2 to write my distributed internet operating system / facebook replacement / iPad app ( I'm this close to getting a post on Techcrunch about it, which means $FUNDING$!! ) .

Unfortunately, I occasionally disagree with your opinions, therefore your technology is suspect.

Maybe you would program better if you blogged about stuff I agreed with or evangelized my tech pick du jour. Or maybe if you wrote a monad tutorial, I hear thats what all the ninja rockstars are doing these days.

Also, swears make baby steve jobs cry. C'mon, this is the internet, you can't just say anything you want!


I read the entire thing. I mentioned it because you're having ghosts in your data, and you and I know the lack of separation between your test and your software is the #1 candidate for a culprit.


For a first cut at "hey, have I broken anything miserably when I did this?", I don't think he has a bad approach. Obviously, if this were at the stage where he was making a final decision about which API to use we'd want to have some more rigorous benchmarks to back up the claims, but none of this is at that stage yet.


That's a good sign you're doing it right. When you get more out of less code after you refactor. If you're refactoring and you get more code and it all does the same thing, well not so good an idea usually.

One of my ongoing frustrations with java is that it is almost impossible to make less code. Short of a fixing a poor algorithm implementation, most any reworking in java just ends up with another heap of code.

Reminds me of this:

http://steve-yegge.blogspot.com/2007/12/codes-worst-enemy.ht...

Java programmers often wonder why Martin Fowler "left" Java to go to Ruby. Although I don't know Martin, I think it's safe to speculate that "something bad" happened to him while using Java. Amusingly (for everyone except perhaps Martin himself), I think that his "something bad" may well have been the act of creating the book Refactoring, which showed Java programmers how to make their closets bigger and more organized, while showing Martin that he really wanted more stuff in a nice, comfortable, closet-sized closet.


A lot of programmers have a very odd aesthetic that I don't necessarily agree with. I think it comes from some misplaced inferiority complex or something, but their code always has to be "impressive". It can't just work and be simple, it has to work and be massively complex, expansive, cover every corner case known to man, and be an architectural monstrosity to rival the Tower of Babel.

I never understood this point of view. I can code like that, since I had to in order to get a job, but it always annoyed me and made no sense. It was like I was a Shaker trying to sell nice wooden houses in downtown Manhattan. Everyone wanted massive Gothic cathedrals and here I am with a damn fine house that'd last just as long and take 1/10th time to build.

Anyway, just complaining about the state of software design. Carry on.


So, in the interest of full discloser Dave, let's make sure everyone knows you named a web server after me:

http://github.com/KirinDave/fuzed

You and TPW named it "F U Zed" which to me is damn rude.

Based on that, I believe everyone should discount your opinion just from your obvious bias against me personally, but let's review what I actually did anyway.

First, I've got a decent laptop that's got 4 CPU cores and does pretty good running multiple processes. I think it'd hold up well enough for a few simple tests to make sure I didn't break anything. If you had read the blog post, I made this clear in numerous places, but obviously you didn't read the whole thing (or you're hoping other people have not read the whole thing).

Next, since I'm just testing the code to make sure I didn't break it, I just need to slam an older version and a newer version. Since they'll be tested in the same way, it should give me enough data to know. Even though there could be contention on the machine, with 4 cores it should be good enough to figure out if I screwed something up. Additionally, Mongrel2 does aggressive caching of files, so I'm really narrowing it down to just the poll code by hitting a small file.

All that combined with doing multiple runs and looking at the performance between them and for an evening of testing I've done enough to make sure it's not broken. That's it. I'm pretty damn sure you did that when testing your "Homage To Zed named FU" but hey, gotta hold the people you dislike to higher standards then yourself right?

Now, when I get Mongrel2 to a state where it's a real web server, that I actually wrote, rather than stole from Yaws and claimed I wrote, I'll let you know. I'll make sure to setup a massive EC2 cluster and test all the possible permutations a guy like you thinks are necessary to prove that it actually serves files.

Until then, this will do just fine to make sure that I'm not breaking anything.


I've liked your comments over the past couple weeks and I'm watching what you're doing with Mongrel2 avidly, but if you want to know why you may be getting this bum rap for all-drama-no-substance (which isn't fair), remarks like this are a good place to start.

Dave pointed out (in a snarky but not overly aggressive way) that you generated a suboptimal benchmark by profiling from the same machine as your server ran on.

You responded by:

* Talking about the etymology of the name of one of his side projects

* Loosely suggested that you were seriously upset by "f-u-zed", as if f- u- came within a country mile of "over the line" (you want to trade angry detractors, Zed?).

* Claimed that as a result, his observation over your benchmark was invalid.

* Jazz-handed his critique by talking about "4 cores" and multiple comparative runs.

Dude, why didn't you just say "Yeah, you're right; can you repeat my analysis with multiple machines? I'd appreciate it." Because we all know you're probably right, and being right is a much better retort than this stuff is.


Something that people around here seem to assume is that there's no malice in the things people post here. I think it's their inability to recognize politics when they see it. To me, if I know that Dave intentionally named an entire software project just to say "Fuck You" then his opinions don't matter.

But, everyone else will take what he says at face value, which is wrong. He has an agenda, and has had one for years. Unless people know that they can't form their own opinions.

Additionally, I already said the tests were crap in the original blog post. Not only is his opinion already biased, but he obviously didn't read the whole post. My reply was simply reconfirming what I already said, "Yes, you're right but I don't care since I wasn't testing that."

And frankly, I don't mind comments like this. They're easy to knock down and point out the flaws in their own logic. My only problem is with this community's continual belief that everything every person says has equal merit and validity, when it's obvious (as in Dave's case), it doesn't.


Something that people around here seem to assume is that there's no malice in the things people post here.

Yes! Absolutely true, and one of the best things about HN. Comments are generally judged for their content, rather than by who posted them.

I think it's their inability to recognize politics when they see it.

I'm able to recognize politics when I'm looking for it. But again, I enjoy participating in a community where I generally don't have to care about politics. There's generally very little drama on HN.

Honestly, I think the experiments you're doing with poll/epoll are really quite interesting and I enjoy reading about them. But the associated drama/agenda/conspiracy-theory stuff? I could do without having to trawl through that.


This is how people take advantage of you I'm afraid. There's a class of member of every community that knows you try to take each comment and person at their face value, and then uses that against you to shape your opinion.

I know this, because I also did it for years, and sometimes even professionally. If you aren't careful and check what people say or check on who they are, you can get conned into believing something that's not true.

So, fact check what people say, even me. Don't believe things I say just because you see my articles on here all the time. The actual quality of the person and their hidden agendas and biases matter much more than what they actually say.


Honestly, I find I'm a lot happier if I act like there's no politics, even if I know deep down there probably is some of that happening.

You've alluded in other comments to being the kind of person who enjoys the game of politics. I'm just not like that myself - I find that kind of thing really quite dull. If HN ever became more about the personalities than the content, I wouldn't bother "checking up on who people are" or seeing if what they say is shaped by some weird agenda. I'd just leave.


To me, if I know that Dave intentionally named an entire software project just to say "Fuck You" then his opinions don't matter.

Sorry, Zed, but that's simply not true.


Instead of getting angry at him, how about donating some money or machines to him? That stuff costs real cash you know.


It's not a lot of money when you're running a benchmark on EC2 or something. A few dollars for a bunch of instances for a few hours.

Besides, that way you have a kind of neutral frame of reference on the performance.


It's not necessarily the money, it's actually that it's too early in the development. Nowhere in the post did I say this was to see how fast Mongrel2 was. It was to make sure I wasn't screwing things up. To do that I don't need an EC2 cluster or some complex setup, I just need to hit the two servers on localhost and compare them.

Later I can setup a few machines and do all sorts of performance testing, but it probably wouldn't matter. Guys like Dave would always find something to criticize and usually have an agenda that means they have to criticize anything I do. I'm probably instead going to focus on making Mongrel2 do cool stuff instead of bikeshed performance to satisfy the Daves of the world.

My personal motto with Mongrel2 has kind of been, "10% slower is alright if it's 100% smarter." That's more of what I want, since there's plenty of servers out there that are fast as hell, but they're also impossible to work with in modern apps.


I don't get it, why do you want to introduce new factors irrelevant to what you are testing (epoll vs poll)?


  I spent the last few days figuring out how to go about
  doing something that could be "superpoll" [..]
There is not yet any reason to assume Mongrel2 will improve from superpoll. For instance, if ATR > 0.6 only happens in low volume situations, epoll suffices. When ATR < 0.6, you need epoll for better performance. In both regimes, epoll is then either an acceptable or the best solution.

There is no experimental evidence to suppose Mongrel2 servers will operate in the ATR > 0.6 regime, without epoll being able to handle the volume anyway. Other implementers of webservers aren't stupid or shortsighted either and it seems likely that superpoll has occurred to a few of them, but that they found it wouldn't improve matters. As long as you don't know the ATR in practice, it seems premature to start on abstractions and doing the experiments in this blogpost?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: