Authors propose that best approach is to use event-based model with a moderate number of threads corresponding to number of CPUs.
Early Unix systems supported 15 descriptors per-process.
Web servers now handle 3000 HTTP requests/sec. If mean duration is 2 seconds, then on average have 6000 open connections/sec (will likely be more at some points given distribution).
Authors previously showed that scalability of select() could be improved, but select() activity increases with the square of event rate---more events and larger bitmap.
Paper explores problem with select() and propose a new API for Unix.
Also look at other event delivery mechanisms.