文件名称:SEDA-sosp.pdf
文件大小:304KB
文件格式:PDF
更新时间:2013-07-02 03:09:13
SEDA
We propose a new design for highly concurrent Internet services, which we call the staged event-driven architecture (SEDA). SEDA is intended to support massive concurrency demands and simplify the construc- tion of well-conditioned services. In SEDA, applications consist of a network of event-driven stages connected by explicit queues. This ar- chitecture allows services to be well-conditioned to load, preventing resources from being overcommitted when demand exceeds service ca- pacity. SEDA makes use of a set of dynamic resource controllers to keep stages within their operating regime despite large fluctuations in load. We describe several control mechanisms for automatic tuning and load conditioning, including thread pool sizing, event batching, and adaptive load shedding. We present the SEDA design and an implemen- tation of an Internet services platform based on this architecture. We evaluate the use of SEDA through two applications: a high-performance HTTP server and a packet router for the Gnutella peer-to-peer file shar- ing network. These results show that SEDA applications exhibit higher performance than traditional service designs, and are robust to huge variations in load.