
The Flash Web Server (1999) - luu
http://www.cs.princeton.edu/~vivek/flash/
======
joosters
Brief summary:

The flash web server's distinguishing feature is that it uses multiple
lightweight processes to do the blocking I/O required to read a file from the
disk.

I think that their paper is flawed in some ways. They state that other web
servers will block when doing disk I/O. But this is not true; you can easily
read a file in and send it out over the network without any blocking at all,
by using techniques like sendfile() (and related syscalls, sendpath(),
splice() etc), or by mmapping files.

Several web servers used one or more of these techniques back in 1999. The
paper doesn't even mention sendfile(), which has the added performance
advantage that the file contents don't even have to be copied into the web
server's process memory. It's hard to see how their approach is better.

I'm not going to claim their benchmarks are wrong, but it's very easy to
optimize your own server while testing against a sub optimally configured
competitor.

Edit: They tested on FreeBSD 2.2.6 - which lacked sendfile() - this may
explain their results.

------
w8rbt
I believe that Apache incorporates most of the optimizations today. However,
unlike Flash, it is not event driven.

~~~
jimjag
Actually, Apache 2.4 does include an event-based, async MPM: Event. The Event
MPM has not been "just" an optimized keep keepalive Worker variant for years.

------
jagger27
Anyone have a link to the paper? It's 404 on TFA.

~~~
HillRat
Try the USENIX archive:
[https://www.usenix.org/legacy/event/usenix99/full_papers/pai...](https://www.usenix.org/legacy/event/usenix99/full_papers/pai/pai.pdf)

