Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
SEDA(staged event-driven
architecture)
Joongjin Bae
@bae_j
本題に入る前!
• ConcurrencyとParallelismの説明はここでは割愛
します。
• 二つが混乱する方(me)は下記の資料をみてくだ
さい。
http://talks.golang.org/2012/waza.slide#1
•...
ここではConcurrencyの
話をします!
Index
• 既存のConcurrencyの問題点
• SEDAの問題解決
既存のConcurrency
• Thread-based concurrency
• Bounded thread pool
• Event-driven concurrency
Thread-based concurrency
Thread-based concurrencyの問題
• Overhead発生しやすい
Bounded thread pools
• Thread-based concurrencyにスレッド制限を設
けた。
– Overheadが起きないように設定する
– 設定値以上のリクエストが受けないためClientの
待ち発生
Thread-basedはThroughput低下
Event-driven concurrency
Event-driven concurrency
• Throughput問題解決、latency犠牲
• Schedulerの実装が難しい
Structured event queue
• Event-driven concurrencyの問題解決版
• event queueのセットを利用しmodule化とアプ
リケーションの簡略化を狙う
SEDAとは
• Efficient, event-driven concurrency
• Dynamic thread pooling
• Structured queues for code modularity and
load man...
Stage
Stage
• Controller
– リソース(threshold, rate-control, load shedding)の管理、スケジューリン
グ

• Event queue
– Input

• Thread pool
– Que...
Overload Management
Response Time(RT) Target設定:1 sec
90%のRTを監視し負荷が上がると
Token Bucket Rateを調整しEvent Queueへの挿入制御
Overload Management
Application = network of stages
Result : Throughput and Fairness
Result : Response time
Conclusion
• SEDAは
ThroughputとLatency両方満足できる
• SEDAフレームワークはhttp server
• 一応NettyもSEDAの考え方を取り入れている
Highly customizable thre...
Reference
• http://www.eecs.harvard.edu/~mdw/papers/s
eda-sosp01.pdf
• http://netty.io/
Upcoming SlideShare
Loading in …5
×

SEDA – Staged Event-Driven Architecture

1,771 views

Published on

Lightning Talk Slide for SEDA

Published in: Technology

SEDA – Staged Event-Driven Architecture

  1. 1. SEDA(staged event-driven architecture) Joongjin Bae @bae_j
  2. 2. 本題に入る前! • ConcurrencyとParallelismの説明はここでは割愛 します。 • 二つが混乱する方(me)は下記の資料をみてくだ さい。 http://talks.golang.org/2012/waza.slide#1 • 動画 http://blog.golang.org/concurrency-is-notparallelism
  3. 3. ここではConcurrencyの 話をします!
  4. 4. Index • 既存のConcurrencyの問題点 • SEDAの問題解決
  5. 5. 既存のConcurrency • Thread-based concurrency • Bounded thread pool • Event-driven concurrency
  6. 6. Thread-based concurrency
  7. 7. Thread-based concurrencyの問題 • Overhead発生しやすい
  8. 8. Bounded thread pools • Thread-based concurrencyにスレッド制限を設 けた。 – Overheadが起きないように設定する – 設定値以上のリクエストが受けないためClientの 待ち発生
  9. 9. Thread-basedはThroughput低下
  10. 10. Event-driven concurrency
  11. 11. Event-driven concurrency • Throughput問題解決、latency犠牲 • Schedulerの実装が難しい
  12. 12. Structured event queue • Event-driven concurrencyの問題解決版 • event queueのセットを利用しmodule化とアプ リケーションの簡略化を狙う
  13. 13. SEDAとは • Efficient, event-driven concurrency • Dynamic thread pooling • Structured queues for code modularity and load management • Self-tuning resource management • 楽ですね!
  14. 14. Stage
  15. 15. Stage • Controller – リソース(threshold, rate-control, load shedding)の管理、スケジューリン グ • Event queue – Input • Thread pool – Queueからeventを取り出しハンドラーを呼出す – Poolは小さい • Event handler – Event処理、次のステージのQueueへ挿入 • Outgoing Event – Output
  16. 16. Overload Management Response Time(RT) Target設定:1 sec 90%のRTを監視し負荷が上がると Token Bucket Rateを調整しEvent Queueへの挿入制御
  17. 17. Overload Management
  18. 18. Application = network of stages
  19. 19. Result : Throughput and Fairness
  20. 20. Result : Response time
  21. 21. Conclusion • SEDAは ThroughputとLatency両方満足できる • SEDAフレームワークはhttp server • 一応NettyもSEDAの考え方を取り入れている Highly customizable thread model - single thread, one or more thread pools such as SEDA
  22. 22. Reference • http://www.eecs.harvard.edu/~mdw/papers/s eda-sosp01.pdf • http://netty.io/

×