Dan Schatzberg, Jonathan Appavoo, Orran Krieger, and Eric Van Hensbergen. Scalable elastic systems architecture. In Proceedings of the ASPLOS Runtime Environment/Systems, Layering, and Virtualized
Environments (RESoLVE) Workshop. ASPLOS, March 2011.
1. Scalable Elastic System
Architecture (SESA)
Dan Schatzberg, Boston University
Jonathan Appavoo, Boston University
Orran Krieger,VMware
Eric Van Hensbergen, IBM Research Austin
3. Fixed Resources
• Hardware as a fixed resource
• Focus on reducing computation’s need for
hardware resources
• Multiplex hardware resources for different
computations
4. Elastic Resources
• Cloud Computing
• Pay as you go hardware
• Focus on providing hardware to the
computation that requires it
5. Time to scale hardware
Days Minutes
Fixed
Cloud Computing
Hardware
6. Time to scale hardware
Days Minutes
Fixed
Cloud Computing
Hardware
Elastic Applications
7. Time to scale hardware
Days Minutes Milliseconds
Fixed
Cloud Computing
Hardware
?
Elastic Applications
20. Events as Load
• Treat a service request as an event that is
dispatched to resources
• As events occur, load increases
• As events are handled, load decreases
• Each layer being event-driven forces
demand to flow top-down
24. Elastic Interface
• Support elasticity by interfacing via
allocation and deallocation of physical or
logical resources
• Each layer is constructed by being explicit
with respect to resource consumption
• Be explicit with respect to time to meet a
request
29. Object model
• Objects can take advantage
• the semantics of their request patterns
• the lifetime of an instance
• the occupancy w.r.t memory, processing
and communication
• We can optimize for elasticity by taking
advantage of modularity in a system
30. OUTLINE
1. THE PROBLEM
2. OBSERVATIONS
3. OUR TAKE ON A SOLUTION : SESA
1. EBB’s : Elastic Building Blocks
2. SEE: Scalable Elastic Executive - A LibOS
3. EPIC: Events as Interrupts
4. PROTOTYPE & CHALLENGES
40. SESA
SE APP/SERVICE
EBB Namespace System Software Layers
Component Layer
SEExecutive
SEE SEE SEE LibOS Layer
SEMachine
SEHAL SEHAL SEHAL Hardware Abstraction Layer
VM/ VM/ VM/
Node Node Node Partitioning Layer
Elastic Partition of Nodes
41. EBB’s
A new Component Model
for expressing and
EBB NameSpace encapsulating fine grain
elasticity.
The Next Generation of
Clustered Objects.
42. Clustered Objects (CO)
dref(ctr)->inc();
val() dec()
de
de
de
de
de
de
de
de
val
val
val
val
val
val
val
val
c
c
c
c
c
c
c
c
C C C C C C C C
inc inc inc inc inc inc inc inc
inc()
Processors Processors
c c c c
Memory cMemory
c c c
43. What did we learn?
• Event-driven architecture for lazy and
dynamic instantiation of resources
• Mechanism to create scalable software
44. Elastic Building Blocks
• Programming Model for
Elastic and Scalable
Components
• Span multiple nodes
• Built in On Demand nature
-- encapsulation of policies
for both allocation and
deallocation of resources
45. SEE
A Distributed Library OS
Model designed to enable
SEExecutive Elastic Software within the
SEE SEE SEE
context of legacy
environments.
Next Generation of Libra
46. Libra
Architecture
Controller Application Application Application vironment for both u
Partition Partition Partition Partition tition is launched fro
hypervisor to create a
App
This script also launc
App tion to access the con
App
App
Gateway
The gateway serv
which is a compact op
App
App
App
General DB systems. Inferno crea
Purpose JVM services such as the u
the network (see Fig
OS Libra Libra Libra pace remotely via the
over a shared-memor
and application parti
Hypervisor tensions to Inferno a
Figure 1. Proposed system architecture. transport is available
Note that nothing
access all resources
nels, hypervisors run other operating systems with few or no mod- allows resources and
ifications [27, 5, 42]. By running an operating system (the con- partition and accesse
47. Libra
X86 Linux Front Ends
Pool of Libra Partitions
$
9p
$
PowerPC Blades: Libra Workers
48. Libra
X86 Linux Front Ends
Pool of Libra Partitions
$ java -cp my.jar
9p
$
PowerPC Blades: Libra Workers
49. Libra
X86 Linux Front Ends
Pool of Libra Partitions
$ java -cp my.jar
9p
$
PowerPC Blades: Libra Workers
50. Libra
X86 Linux Front Ends
Pool of Libra Partitions
$ java -cp my.jar
9p
$ for ((i=0;i<44;i++))
do
java -cp my.jar &
done
PowerPC Blades: Libra Workers
51. Libra
X86 Linux Front Ends
Pool of Libra Partitions
$ java -cp my.jar
9p
$ for ((i=0;i<44;i++))
do
java -cp my.jar &
done
PowerPC Blades: Libra Workers
52. Libra
X86 Linux Front Ends
Pool of Libra Partitions
$ java -cp my.jar
9p
$ for ((i=0;i<44;i++))
do
java -cp my.jar &
done
PowerPC Blades: Libra Workers
53. What did we learn?
• Specialized environment for each
application
• Lightweight system layer implementing
services for performance
• General purpose OS for non-performance
critical services
54. SEE : A LibOS for SESA
• Distributed LibOS that
can elastically span
Per-node EBB manifestations
nodes
Scalable Elastic Executive (SEE)
• Instances cooperate to EBB Infrastructure
FS Name Space
support the allocation Protocol (9p)
and deallocation of locality aware
inter-node
event communication
EBB’s memory
dispatcher protocols and
allocator
primitives
• Enables compatibility
with Front End nodes SEHAL
running via unified 9p
namespace
61. Elastic Programmable
Interrupt Controller
• Programmed by the SEE
• Provides the minimum requirement of
elastic applications - mapping load to
resources
• Portable layer
• Take advantage of network features such as
broadcast and multicast
65. OUTLINE
1. THE PROBLEM
1. Pay as you go computing
2. Insufficient systems support for elasticity
2. OBSERVATIONS
3. OUR TAKE ON A SOLUTION
4. PROTOTYPE & CHALLENGES
66. Pay as you go hardware
Software
Consumer
Provider
67. Pay as you go hardware
Software
Consumer
Request
Provider
68. Pay as you go hardware
Software
Consumer
Provider