EventWave: Programming Model and Runtime Support for Tightly-Coupled Elastic Cloud Applications (PDF) (Slides)
Wei-Chiu Chuang, Bo Sang, Sunghwan Yoo, and Rui Gu (Department of Computer Science, Purdue University), Charles Killian (Purdue University and Google), and Milind Kulkarni (School of Electrical and Computer Engineering, Purdue University)
An attractive approach to leveraging the ability of cloud computing platforms to provide resources on demand is to build elastic applications, which can dynamically scale up or down based on resource requirements. To ease the development of elastic applications, it is useful for programmers to write applications with simple sequential semantics, without considering elasticity, and rely on runtime support to provide that elasticity. While this approach has been useful in restricted domains, such as MapReduce, existing programming models for general distributed applications do not expose enough information about their inherent organization of state and computation to provide such transparent elasticity.
We introduce EVENTWAVE, an event-driven programming model that allows developers to design elastic programs with inelastic semantics while naturally exposing isolated state and computation with programmatic parallelism. In addition, we describe the runtime mechanism which takes the exposed parallelism to provide elasticity. Finally, we evaluate our implementation through microbenchmarks and case studies to demonstrate that EVENTWAVE can provide efficient, scalable, transparent elasticity for applications run in the cloud.
We are preparing to release the code publicly.