

Flash: An efficient and portable Web server (1999) [pdf] - smegel
http://www.cs.princeton.edu/~vivek/pubs/flash_usenix_99/flash.pdf

======
daurnimator
Googling around for the "Flash" server I also came across this page:
[http://read.seas.harvard.edu/cs261/2011/debox.html#fn:1](http://read.seas.harvard.edu/cs261/2011/debox.html#fn:1)

------
daurnimator
Interesting approach. using mmap + mincore is a bit racy; but about as good as
you could do at the time.

I wonder how it compares to linux async io?

~~~
smegel
> I wonder how it compares to linux async io?

Well there are two kinds - the POSIX API provided by glibc that just uses
threads in userspace to offload IO (so its basically no different to running
your own thread-pool), and the kernel provided io_* async routines that bypass
the page cache so are of limited use.

FreeBSD provides better async block IO...with read completion events popping
of the end of your kqueue alongside all your other events (socket, timers,
signals etc).

I partially came across this article after researching the claims made in this
nginx blog post [https://www.nginx.com/blog/thread-pools-boost-
performance-9x...](https://www.nginx.com/blog/thread-pools-boost-
performance-9x/). I thought it was cool that someone was delving deep into to
the heart of the matter 15 years earlier.

------
PythonicAlpha
Might be a good product, but the name "flash" is a little burnt regarding web
and web-development.

~~~
nasalgoat
Not in 1999.

