
The Architecture of Mailinator - averaging 4.5million emails a day on a single 2Ghz machine - danielha
http://mailinator.blogspot.com/2007/01/architecture-of-mailinator.html
======
brett
I remember reading this a while back. Sounds like a good data point for Paul
Buchheit's Startup School point about memory vs disks.

------
budu3
Wow, amazing design philosophy. It's so unlike a google philossphy giving that
he works with google. If this was done by google they'd keep every email ever
sent to mailinator and analyse it for stats and patterns the help improve the
system.

------
inklesspen
I am a little surprised they get this much performance out of Java. But I
guess if you know it like the back of your hand, you can make it fly.

~~~
Tichy
Just curious, what else than Java would you use for performance, save for C or
Lisp? I know the YC folks don't appreciate it, but actually Java has it's
merits. Last comparison I looked at, Java was 6 times slower than C, with only
LISP being faster and not being C. Scripting languages like Python or Perl are
a factor slower than Java.

~~~
inklesspen
My perception is that the extra coding done to implement things like patterns
to get around the fact that Java is so limited a language will cut down on the
performance gains. But I don't have any statistics to back that up.

BTW, Python is not just a scripting language. It is a real language that just
happens to be usable as a scripting language. Lua is a scripting language.

~~~
Tichy
OK, not the right place for that discussion. The reason languages like python
are inherently slower is that they are not strongly typed. It seems only LISP
is getting it right, I think there you can voluntarily use strong typing,
allowing for dramatic speed improvements - why don't any other languages copy
that? (I think it must be the typing that is responsible for the speed
difference - this time I don't have an official article backing that up).

~~~
ralph
If you look at the PyPy project you'll see that it's possible with Python to
spot that foo is always an integer within a certain scope, thereby allowing
short-cuts when dealing with it. They're also using the excellent LLVM
framework to JIT the Python byte-code. It's not replacing the CPython
interpreter anytime soon, but it is doing interesting stuff.

URL: <http://codespeak.net/pypy/dist/pypy/doc/index.html>

LLVM is well worth a look, BTW. Now that Apple have seen its benefits and are
providing a workforce it's coming along in leaps and bounds.

URL: <http://llvm.org/>

