SEDA: An Architecture for Highly Concurrent Server Applications
- http://www.eecs.harvard.edu/~mdw/proj/seda/
- Virtualization Considered Harmful: OS Design Directions for Well-Conditioned Services / Matt Welsh and David Culler
- SEDA: An Architecture for Well-Conditioned, Scalable Internet Services / Matt Welsh, David Culler, and Eric Brewer
- SEDA: An Architecture for Well-Conditioned, Scalable Internet Services (SOSP01のプレゼンテーションスライド)
- http://seda.sourceforge.net/
- http://jcyclone.sourceforge.net/
kazamaさんのblogを読んで、Apache Harmonyのメーリングリストで、VMのスレッドモデルに関する議論がおこなわれているのを知った。ぼんやりと、そのスレッドを読んでいると、1:1スレッドモデルを使ったOSではスケールしないので、SEDAのような新しいアーキテクチャを考える必要があったというメールが目にとまった。
SEDAは、staged event-driven architectureの略で、処理をいくつかのステージにわけて、ステージ毎のキューを使うイベントドリブンアーキテクチャである。このようなアーキテクチャを使うことにより、高い並行性やスケーラビリティ、モジュラリティ、アプリケーションによるイベントのプライオリティ決定が可能となる。SEDAを提案しているMark Welshは、NBIO(JDK 1.3用のノンブロッキングI/Oライブラリ)の作者であり、JSR#051(java.nioパッケージ)のexpert groupの一員でもある。SEDAはプロジェクトとしては終わっており、JCyclone projectが後を引き継いでいるようだ。