PLASMA : Programmable Elasticity for Stateful Cloud Computing Applications Bo Sang (Purdue University, Ant Financial Services Group), Pierre-Louis Roman, Patrick Eugster (Università della Svizzera italiana), Hui Lu (Binghamton University), Srivatsan Ravi (University of Southern California), Gustavo Petri (ARM Research)
Elasticity Management for Cloud Applications 2
AWS Lambda Function Each function executes independently External storage introduce nontrivial latency 3
Actor-based Applications in Cloud ✓ Scalability ✓ Low latency Elasticity ? Orleans (SoCC’13, Eurosys’16) Actor EventWave (SoCC’14) AEON (Middleware’16) Server 4
Elasticity Management for PageRank Communication Graph partition Resource Usage Server 5
Fine-grained Elasticity Management PLASMA Language ❑ We need ❑ Application information ❑ User requirements ❑ Server runtime information PLASMA Runtime ❑ Application runtime information 6
PLASMA Tool Chain AEON Program PLASMA Compiler PLASMA Program Profiling Runtime Profiling Runtime Profiling Runtime Execution Runtime 7
Elasticity Programming Language ❑ Elasticity rules server.cpu.perc > 80 or server.cpu.perc < 60 => balance({Partition}, cpu); Conds => Behaviors; ❑ Conditions Server runtime balance({ atypes }, resource) Actor runtime reserve( actor , resource) Semantics colocate( actor , actor ) … separate( actor , actor ) ❑ Behaviors: pin( actor ) 8
Elasticity Management Runtime Profiling Runtime Profiling Runtime Profiling Runtime LEM LEM LEM GEM GEM Profiling Runtime Elasticity Messages Execution Runtime Profiling Runtime: collecting runtime information of actors and the server LEM: processing rules which only require local information GEM: processing rules which only require global information 9
Evaluation: Applications Applications Elasticity rules Metadata server 1. Colocate Folder with Files on the same server PageRank 1. Balance CPU workload E-Store 1. Put hot Partitions on idle servers 2. Colocate parent-child Partitions 3. Balance CPU workload of Partitions Media Service 1. Balance network workload for FrontEndsService 2. Provide VideoStream with enough CPU 3. Colocate linked VideoStream and UserInfo 4. Avoid migrating MovieReview 5. Balance CPU workload of ReviewChecker 6. Colocate linked ReviewEditor andUserReview Halo Presence Server 1. Balance CPU workload of Routers 2. Colocate Session with Players in it 10
Evaluation: PageRank ❑ Setup ❑ SNAP’s LiveJournal social network ❑ Use METIS to partition the graph into 32 partitions 24% faster with 16 vCPU (8 servers) 24 vCPU (12 servers) vs 32 vCPU (16 servers) 1.2 90 Computation Time (s) 80 Normalized Iteration Time (s) 1 PLAS2MA PLASMA 70 Over-Provisioning 0.8 60 50 Mizan (w/ Elasticity) 0.6 40 Mizan (w/o Elasticity) 30 0.4 PLAS2MA (w/ Elasticity) PLAS 2 MA PLASMA 20 PLAS2MA (w/o Elasticity) 0.2 PLAS 2 MA Orleans Elasticity 10 0 0 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 1 2 3 4 5 6 7 8 9 10 111213 141516 171819 Number of Iterations Number of Iterations 11
Recommend
More recommend