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