SlideShare a Scribd company logo
SEDA: An Architecture for Well-
Conditioned, Scalable Internet Services
by Welsh, Culler, and Brewer
UC San Diego
CSE 294
Winter Quarter 2007
Barry Demchak
2
The Objective
 Services that support millions of users
 Responsive
 Robust
 Highly available
 Support large swings in load over time (100x)
 General purpose mechanisms
3
A Web Application Example: DNS
 Verisign’s root servers
 Two 10-high stacked 1U IBM eServers
running Solaris and Red Hat Linux
 26 billion requests/day (normal traffic) or
300K-500K requests per second
 In 2000, there were 1 billion requests/day
 In 2010, predicting 200 billion requests/day
-- InfoWorld, February 16, 2007, DNS Attack
Puts Web Security in Perspecitive,
Roger Grimes
4
SEDA
 Problem Background
 Survey of existing alternatives
 SEDA design
 Implementation results
 Applicability to ESBs (e.g., Mule)
 Applicability to THE picture
5
The Environment
 Static content becoming dynamic content
 Rapidly changing service logic
 Hosting on general purpose platforms
6
Non-Solutions
 Replication
 Traditional operating systems
 Traditional concurrency
7
Solution
 SEDA = Staged Event-Driven Architecture
 Applications decompose to stages
 Stages have incoming event queues
 Dynamic resource throttling
8
Definitions
 Well-conditioned
 Behaves like a simple pipeline: output rate
scales to input rate
 Excessive demand does not degrade pipeline
throughput
 Graceful degradation
 Under load, response time degrades linearly
with length of queue
 Degraded response time constant for all
clients (subject to service policies)
9
The Existing Choices
 Thread-based Concurrency
 Bounded Thread Pools
 Event-driven Concurrency
 Structured Event Queues
10
Thread-based Concurrency
 Thread-per-request model (RPC, JMI,
DCOM)
11
Thread-based Performance
12
Bounded Thread Pools
 Initial thread pool subject to expansion
 Fixed thread pools cause unfairness to clients
because of long waits when threads are
blocked
 Policies of reordering/prioritizing threads
based on expense of request are difficult
13
Event-driven Concurrency
 Queue-based scheduling of threads
 Threads execute finite state machines
14
Event-driven Performance
15
Structured Events Queues
 Sets of event queues
16
SEDA Goals
 Support massive concurrency
 Simplify construction of well-conditioned
services
 Enable introspection
 Support self-tuning resource management
17
SEDA Terms
 Stage = fundamental processing unit
 Event handler
 Incoming event queue
 Thread pool
 Controller = scheduler for a stage
18
A SEDA Application – Web server
19
Dynamic Resource Controllers
 Shields programmers from performance
tuning
 Observes stage’s runtime characteristics, and
adjusts allocation and scheduling parameters
to meet performance targets
20
Dynamic Resource Controllers
21
Thread Pool Controller Performance
22
Batching Controller Performance
23
Implementation: Sandstorm
 Internet-based service platform
 Each application implements handleEvents()
 APIs for:
 Naming, creating, destroying stages
 Performing queue operations
 Controlling queue thresholds
 Profiling and debugging
 Asynchronous I/O package
 7900 lines of Java
24
Asynchronous I/O
25
Asynchronous I/O Performance
26
Application and Evaluation
 Haboob: a high performance HTTP server
 Benchmarks
 Architecture
 Adaptive load shedding
 Gnutella packet router
 Architecture
27
Haboob Throughput
28
Haboob Response Time
29
SEDA Summary
 Establishes principles toward Internet-style
operating environments
 Stages ease concurrency complexity and
encourage modularity
 Dynamic controllers enable novel scheduling
and resource management strategies
 Challenges: detecting cause of overload
conditions, and control strategy to cure
overload
30
Mule
 From “Implementing an ESB using Mule” by
Ross Mason for JavaZone 2005
http://mule.mulesource.org/wiki/download/attachments/223/javazone-2005-mule-real-world-old.ppt?version=1
 ESB
 Loosely coupled components
 Event driven
 Highly distributed
 Intelligent Routing
 Data transformation
 Multiprotocol message bus …
31© 2005
Mule Topologies
Enterprise Service Bus
Client/Server and Hub n' Spoke
Peer Network
Pipeline
Enterprise Service Network
32
Messaging – JMS Style
 JMS = Java Messaging Service
 Connection-oriented API exposes point-to-
point and publish/subscribe communications
 Queue-oriented
33© 2005
Loan Broker Design
34© 2005
Design With Mule

More Related Content

PDF
IEEE 802.11 Architecture and Services
PDF
MD-5 : Algorithm
PDF
Issues in routing protocol
PPT
wireless application protocol
PPTX
SHA- Secure hashing algorithm
PPTX
Firewall Design and Implementation
PPT
Cryptography and Network Security William Stallings Lawrie Brown
PPTX
ISSUES IN AD HOC WIRELESS NETWORKS
IEEE 802.11 Architecture and Services
MD-5 : Algorithm
Issues in routing protocol
wireless application protocol
SHA- Secure hashing algorithm
Firewall Design and Implementation
Cryptography and Network Security William Stallings Lawrie Brown
ISSUES IN AD HOC WIRELESS NETWORKS

What's hot (20)

PPT
block ciphers
PPTX
Public Key Cryptosystem
PPTX
Hash Function
PPTX
Zone Routing Protocol
PPTX
Traditional Problems Associated with Computer Crime
PPTX
energy efficient unicast
PPTX
Message digest 5
PPTX
Mobile Computing (Part-2)
PPTX
6.distributed shared memory
PPTX
Underlying principles of parallel and distributed computing
PPTX
Php cookies
PPT
Utran architecture(rashmi)
PPT
Network security cryptographic hash function
PPTX
Information Security (Digital Signatures)
PDF
Mobile Network Layer
PPTX
5. message authentication and hash function
PPT
X.509 Certificates
PPTX
Mobile Ad hoc Networks
PPT
Basics of signals data communication
PPTX
Failure analysis buisness impact-backup-archive
block ciphers
Public Key Cryptosystem
Hash Function
Zone Routing Protocol
Traditional Problems Associated with Computer Crime
energy efficient unicast
Message digest 5
Mobile Computing (Part-2)
6.distributed shared memory
Underlying principles of parallel and distributed computing
Php cookies
Utran architecture(rashmi)
Network security cryptographic hash function
Information Security (Digital Signatures)
Mobile Network Layer
5. message authentication and hash function
X.509 Certificates
Mobile Ad hoc Networks
Basics of signals data communication
Failure analysis buisness impact-backup-archive
Ad

Viewers also liked (20)

PDF
F8 tech talk_pinterest_v4
PPTX
Facebook's TAO & Unicorn data storage and search platforms
PPTX
Data Driven Growth
PPTX
IDEs y Frameworks mas utilizados
PPTX
Presto: Distributed Machine Learning and Graph Processing with Sparse Matrices
PPTX
Cassandra Summit - What's New In Apache TinkerPop?
PDF
Real World Tales of Repair (Alexander Dejanovski, The Last Pickle) | Cassandr...
PDF
Configurando o Geany para Python - 03/2012
PDF
Configurando o geany_para_python
PDF
Introduction to cassandra 2014
PPTX
Epiphany: Connecting Millions of Events to Thirty Billion Data Points in Real...
PDF
The Gremlin Graph Traversal Language
PDF
Quantum Processes in Graph Computing
PPTX
Deletes Without Tombstones or TTLs (Eric Stevens, ProtectWise) | Cassandra Su...
PDF
Cassandra Virtual Node talk
PDF
Gremlin's Graph Traversal Machinery
PPTX
HBaseCon 2015 General Session: Zen - A Graph Data Model on HBase
PDF
HBaseCon 2015: S2Graph - A Large-scale Graph Database with HBase
PDF
Clock Skew and Other Annoying Realities in Distributed Systems (Donny Nadolny...
PDF
PagerDuty: Span the WAN? Yes you can!
F8 tech talk_pinterest_v4
Facebook's TAO & Unicorn data storage and search platforms
Data Driven Growth
IDEs y Frameworks mas utilizados
Presto: Distributed Machine Learning and Graph Processing with Sparse Matrices
Cassandra Summit - What's New In Apache TinkerPop?
Real World Tales of Repair (Alexander Dejanovski, The Last Pickle) | Cassandr...
Configurando o Geany para Python - 03/2012
Configurando o geany_para_python
Introduction to cassandra 2014
Epiphany: Connecting Millions of Events to Thirty Billion Data Points in Real...
The Gremlin Graph Traversal Language
Quantum Processes in Graph Computing
Deletes Without Tombstones or TTLs (Eric Stevens, ProtectWise) | Cassandra Su...
Cassandra Virtual Node talk
Gremlin's Graph Traversal Machinery
HBaseCon 2015 General Session: Zen - A Graph Data Model on HBase
HBaseCon 2015: S2Graph - A Large-scale Graph Database with HBase
Clock Skew and Other Annoying Realities in Distributed Systems (Donny Nadolny...
PagerDuty: Span the WAN? Yes you can!
Ad

Similar to Seda an architecture for well-conditioned scalable internet services (20)

PPT
Adaptive Server Farms for the Data Center
PPTX
Architecting Solutions Leveraging The Cloud
PPT
Introduction To Server Virtualisation Planning And Implementing A Virtualisat...
PPTX
Architecture Best Practices
PPTX
Cloud Computing
PDF
Majid_Jalili_SRC_2014
PPT
Scalable Web Architectures and Infrastructure
PPTX
Scalable Web Applications in AWS, 2014
PPTX
High-speed, Reactive Microservices 2017
PPTX
#VMUGMTL - Radware Breakout
PPTX
Containerized Hadoop beyond Kubernetes
PPTX
Si so product 1 day technical
PPTX
Optimizing Apache HBase for Cloud Storage in Microsoft Azure HDInsight
PPTX
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
PPT
Grid Server Intro
PPT
Cisco NetApp VMware - Long Distance VMotion
PDF
DRaaS at the museum, vCloud Air
PPTX
C* Summit 2013: Optimizing the Public Cloud for Cost and Scalability with Cas...
PPTX
SDN and NFV Value in Business Services - A Presentation By Cox Communications
PPTX
AWS Summit Berlin 2013 - Building web scale applications with AWS
Adaptive Server Farms for the Data Center
Architecting Solutions Leveraging The Cloud
Introduction To Server Virtualisation Planning And Implementing A Virtualisat...
Architecture Best Practices
Cloud Computing
Majid_Jalili_SRC_2014
Scalable Web Architectures and Infrastructure
Scalable Web Applications in AWS, 2014
High-speed, Reactive Microservices 2017
#VMUGMTL - Radware Breakout
Containerized Hadoop beyond Kubernetes
Si so product 1 day technical
Optimizing Apache HBase for Cloud Storage in Microsoft Azure HDInsight
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
Grid Server Intro
Cisco NetApp VMware - Long Distance VMotion
DRaaS at the museum, vCloud Air
C* Summit 2013: Optimizing the Public Cloud for Cost and Scalability with Cas...
SDN and NFV Value in Business Services - A Presentation By Cox Communications
AWS Summit Berlin 2013 - Building web scale applications with AWS

More from bdemchak (20)

PPTX
Cytoscape Network Visualization and Analysis
PDF
The New CyREST: Economical Delivery of Complex, Reproducible Network Biology ...
PDF
Cytoscape Cyberinfrastructure
PDF
No More Silos! Cytoscape CI Enables Interoperability
PPTX
Cytoscape CI Chapter 2
PPT
Composable Chat Introduction
PPT
Rich Services: Composable chat
PPT
Ucsd tum workshop bd
PPT
Rich Feeds for RESCUE and PALMS
PPT
Iscram 2008 presentation
PPT
Rich feeds policy, the cloud, and CAP
PPT
Rich services to the Rescue
PPTX
Hicss 2012 presentation
PPTX
Policy 2012 presentation
PPT
Rich feeds for rescue an integration story
PPT
Background scenario drivers and critical issues with a focus on technology ...
PPT
Rich feeds for rescue, palms cyberinfrastructure integration stories
PPT
Data quality and uncertainty visualization
PPTX
Web programming in clojure
PPTX
Structure and interpretation of computer programs modularity, objects, and ...
Cytoscape Network Visualization and Analysis
The New CyREST: Economical Delivery of Complex, Reproducible Network Biology ...
Cytoscape Cyberinfrastructure
No More Silos! Cytoscape CI Enables Interoperability
Cytoscape CI Chapter 2
Composable Chat Introduction
Rich Services: Composable chat
Ucsd tum workshop bd
Rich Feeds for RESCUE and PALMS
Iscram 2008 presentation
Rich feeds policy, the cloud, and CAP
Rich services to the Rescue
Hicss 2012 presentation
Policy 2012 presentation
Rich feeds for rescue an integration story
Background scenario drivers and critical issues with a focus on technology ...
Rich feeds for rescue, palms cyberinfrastructure integration stories
Data quality and uncertainty visualization
Web programming in clojure
Structure and interpretation of computer programs modularity, objects, and ...

Recently uploaded (20)

PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
ai tools demonstartion for schools and inter college
PPTX
Introduction to Artificial Intelligence
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Digital Strategies for Manufacturing Companies
PDF
top salesforce developer skills in 2025.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Transform Your Business with a Software ERP System
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
history of c programming in notes for students .pptx
PTS Company Brochure 2025 (1).pdf.......
ai tools demonstartion for schools and inter college
Introduction to Artificial Intelligence
2025 Textile ERP Trends: SAP, Odoo & Oracle
Digital Strategies for Manufacturing Companies
top salesforce developer skills in 2025.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Softaken Excel to vCard Converter Software.pdf
How to Choose the Right IT Partner for Your Business in Malaysia
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
wealthsignaloriginal-com-DS-text-... (1).pdf
CHAPTER 2 - PM Management and IT Context
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Transform Your Business with a Software ERP System
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
history of c programming in notes for students .pptx

Seda an architecture for well-conditioned scalable internet services

Editor's Notes

  • #3: Internet hits translate to several I/O and network requests -> enormous load on underlying resources As of 2001: Yahoo gets 1.2 billion hits per day, AOL gets over 10 billion page views per day
  • #5: SEDA = Staged Event-Driven Architecture
  • #6: Static -> dynamic: Extensive computation and I/O Changing service logic: increasing engineering complexity and deployment General purpose platforms: Not specially engineered platforms
  • #7: Replication – cannot scale to orders of magnitude Traditional OS and concurrency – brittle under large loads Traditional OS focuses on giving providing transparency through virtual machines. Thread switching has high overhead, threads have large memory overhead. Internet applications need massive concurrency and better control over resource usage … better control makes a big difference at the margin of excessive load.
  • #8: Stages are robust building blocks subject to thresholding and filtering according to load Allows informed scheduling and resource-management decisions, including request reordering, filtering, and aggregation. Dynamic resource throttling allows control over resource allocation and scheduling of components Demonstration: High performance HTTP server (… remember CSE222a?? … multiple threads vs Select statement?)
  • #9: Well-conditioned: output latency is determined by the length of the queue/pipeline This property holds regardless of the number of stages in the pipeline, subject to queueing/dequeing times In a non-pipelined design, clients wait for entire operation to complete before moving on to next one.
  • #12: Overheads: cache and TLB misses, scheduling overhead, and lock contention Threads = multiprogramming … virtualization hides global resource management SPIN, Exokernel, Nemesis = examples of OS attempts to solve this
  • #13: Apache, IIS, Netscape Enterprise Server, BEA Weblogic, IBM WebSphere Bad case: cached static pages (cheap) vs large pages not in cache (expensive)
  • #14: Flash, thttpd, Zeus, JAWS Complex scheduler … hard to maintain … complex FSM maintenance, too … modularity difficult to achieve Needs helper threads that do blocked I/O Has well-conditioned, graceful degradation --
  • #16: Sets of event queues … promote modularity Seems to be a generic class of solutions
  • #17: Support massive concurrency = event-driven execution where possible Simplify construction of well-conditioned services = shields the application from details of scheduling and resource management … supports modular construction, support for debugging and profiling Enable introspection = applications analyze the stream to adapt behavior to load … prioritize and filter services to support degraded service under load Support self-tuning resource management = tune resource parameters to load … e.g., allocate threads to a stage based on load instead of hard-coding it apriori
  • #18: Threads pull events from queue, schedule events on downstream queues, and waits for more Controller adjusts resource allocation and scheduler dynamically Note that threads are stage resources, not task resources. Thread count can be dynamically allocated based on load. Stages can run in serial or parallel, or both. Event handler can implement its own scheduling policy irrespective of how the system filled the queue
  • #19: Set of stages separated by queues Private thread pool per stage Each state can be independently managed Stages can be run in serial or parallel Each stage can be independently load conditioned … more threads for heavy loads (thresholding) Important point: queues can be finite, which means that a stage can fail to queue an event … meaning next stage is very busy. Stage can make a decision to block (backpressure), or drop event (load shedding) and take some remedial action Question: should two modules communicate via method call or queue? A queue system promotes modularity, isolation, and load management … cost: latency Important point: debugging, billing, memory usage, and queue profiling can occur by attaching processors between stages and queues
  • #21: Thread pool controller Adjusts the number of threads executing within each stage Periodically examines queue and adds threads if queue exceeds some threshold … or removes them if they’re idle for some amount of time Batching controller Adjusts the number of events processed by each invocation of the event handler (i.e., a batching factor) This increases throughput due to cache locality Tries to strike a balance … large batching factors can degrade *overall* performance … so try to select a small batching factor … kind of like a PLL *** Controllers are a great way of enforcing performance policy ***
  • #22: This is for the Haboob web server Thread pool adjusted based on length of corresponding queue Queue length sampled every 2 seconds, thread added to pool if queue exceeded 100 entries … max 20 threads Threads are removed from the pool idle for more than 5 seconds AsyncFile used a threshold of 10 queue entries to exaggerate the behavior
  • #23: Shows single stage generating events at an oscillating rate When the output rate increases, controller decreases batching factor … and visa versa *** The point: controllers allow application to adapt to changing conditions regardless of the particular algorithms used by the operating system … or the application ***
  • #25: They’re eating their own dog food. Completed I/O goes back into the next stage’s queue
  • #26: Clients issue bursts of 8KB packets Server responds with ACK for every 1000 packets Assume GB ethernet and all Linux boxes Slight degradation for SEDA is due to non-scalability in Linux network stack Threaded implementation stops at 512 connections due to Linux thread limitations SEDA implementation had 120 threads to handle socket writes.
  • #29: Apache and Flash often perform faster, but the tails are fierce. Haboob gives consistent response time under load
  • #31: Highly Scalable!