Up: A scalable and explicit
Previous: A scalable and explicit
UNIX applications not wishing to block when doing I/O often use the
select() system call, to wait for events on multiple file
The select() mechanism works well for small-scale applications,
but scales poorly as the number of file descriptors increases.
Many modern applications, such as Internet servers, use hundreds
or thousands of file descriptors, and suffer greatly from the
poor scalability of select().
Previous work has shown that while the traditional implementation
of select() can be improved, the poor scalability is inherent
in the design.
We present a new event-delivery mechanism, which allows
the application to register interest in one or more sources of events, and
to efficiently dequeue new events.
We show that this mechanism, which requires only minor changes to
applications, performs independently of the number of file descriptors.