SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Using Generative Design Patterns to Develop Network Server Applications
IPDPS '05 Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) - Workshop 4 - Volume 05
Towards a software architecture for DRM
Proceedings of the 5th ACM workshop on Digital rights management
Overload management as a fundamental service design primitive
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
Auto-tune design and evaluation on staged event-driven architecture
Proceedings of the 1st workshop on MOdel Driven Development for Middleware (MODDM '06)
Acceptable strategies for improving web server performance
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
Service-Oriented Operating System: A Key Element in Improving Service Availability
ISAS '07 Proceedings of the 4th international symposium on Service Availability
IBM Journal of Research and Development
Generic load regulation framework for Erlang
Proceedings of the 9th ACM SIGPLAN workshop on Erlang
Hi-index | 0.00 |
Abstract: We argue that existing OS designs are ill-suited for the needs of Internet service applications. These applications demand massive concurrency (supporting a large number of requests per second) and must be well-conditioned to load (avoiding degradation of performance and predictability when demand exceeds capacity). The transparency and virtualization provided by existing operating systems leads to limited concurrency and lack of control over resource usage. We claim that Internet services would be far better supported by operating systems by reconsidering the role of resource virtualization. We propose a new design for server applications, the staged event-driven architecture (SEDA). In SEDA, applications are constructed as a set of event-driven stages separated by queues. We present the SEDA architecture and its consequences for operating system design.