Khaled Elmeleegy, System Support for High Performance Network Servers

The performance of network servers is critical to the success of the information infrastructure. Internet server systems (e.g., Web servers) serve a virtually unlimited client community, they provide an increasing volume of data, and they must support a set of Web based services that increases in variety and sophistication. In this talk, I will present two techniques to improve network servers' performance. Specifically, since network servers are I/O intensive, the two techniques focus on enhancing I/O performance in network servers. First, I will present a technique to efficiently manage virtual-to-physical kernel ephemeral address mappings. Those ephemeral mappings are used in many kernel subsystems including network and disk I/O. With succeeding generations of processors the cost of creating ephemeral mappings is increasing, particularly when an ephemeral mapping is shared by multiple processors. I will introduce the sf_buf ephemeral mapping interface. This interface reduces the cost of ephemeral mapping management by reusing wherever possible existing virtual-to-physical address mappings. Second, I will present Lazy Asynchronous I/O (LAIO), a new asynchronous I/O interface. Asynchronous I/O is crucial to a class of network servers, event-driven servers. Those servers are known for their high performance and scalability. Unlike other asynchronous I/O interfaces, LAIO is universal in the sense that it applies to all blocking I/O operations. Furthermore, it is lazy in the sense that it creates a continuation only when an operation actually blocks, and it notifies the application only when a blocked operation completes in its entirety. Hence, it provides superior performance.

Finally, I will introduce, Causeway, a general purpose framework for distributed resource management, performance analysis, and security and access control. Then to demonstrate Causeway's effectiveness, I'll show how it can be used to easily develop an example meta-application, a global priority enforcement system in a distributed system.