Linux Kongress, and: introducing gatling

Felix von Leitner <[email protected]> Tue, 7 Oct 2003 02:44:04 +0200
Newsgroups gmane.comp.web.fnord
Message-ID <[email protected]>
First of all: I have been invited to speak at Linux Kongress this month,
again about scalable network programming.  I will actually have new
material to talk about, so if you are in the area, please join me ;-)

You might have noticed my enot framework for event notification.  The
problem with it was that it was a first try, and thus I learned a lot
from it, but it's far from perfect.  So now I'm basically throwing it
away.

The new API I'm using is based on an API definition from Dan Bernstein,
which you can find at <URL: http://cr.yp.to/lib/io.html>.  This API is
less powerful than enot in the sense that it is not call-back based, but
it turns out to be a better abstraction after all, so I implemented it
in libowfat.  Not only that, I extended it to handle timeouts
transparently in the io_wait context, and I added an io batch API to
handle sending stuff like "a header, and then a few bytes from a file,
and then a footer" over a socket in a platform independent way.  In
particular, this API will exploit writev, Linux sendfile and Linux
TCP_CORK, and it will also exploit FreeBSD sendfile and Free+OpenBSD
kqueue (only the CVS version, though).

Why am I telling you this?  Because the reference application for this
API is, you guessed it, another web server, and it's called "gatling"
(I'm not good at choosing names, in case you haven't noticed).  It's not
in the libowfat CVS, it has it's own CVS repository:

  cvs -d :pserver:[email protected]:/cvs -z9 checkout gatling

It can not to CGI yet, and it's not ready for production use yet, but
it's getting there.  If you care to discuss this, please join me on the
libowfat mailing list, because all of the advanced scalability stuff is
in libowfat now.

Felix