Turning Down the LAMP: Software Specialisation for the Cloud

The wide availability of cloud computing offers an unprecedented opportunity to rethink how we construct applications. The cloud is currently mostly used to package up existing software stacks and operating systems (e.g. LAMP) for scaling out websites. We instead view the cloud as a stable hardware platform, and present a programming framework which permits applications to be constructed to run directly on top of it without intervening software layers. Our prototype (dubbed Mirage) is unashamedly academic; it extends the Objective Caml language with storage extensions and a custom run-time to emit binaries that execute as a guest operating system under Xen. Mirage applications exhibit significant performance speedups for I/O and memory handling versus the same code running under Linux/Xen. Our results can be generalised to offer insight into improving more commonly used languages such as PHP, Python and Ruby, and we discuss lessons learnt and future directions.

[1]  Jon Crowcroft,et al.  Multiscale not multicore: efficient heterogeneous cloud computing , 2010 .

[2]  Edoardo Biagioni A Structured TCP in Standard ML , 1994, SIGCOMM.

[3]  Jason Flinn,et al.  Rethink the sync , 2006, OSDI '06.

[4]  Hovav Shacham,et al.  On the effectiveness of address-space randomization , 2004, CCS '04.

[5]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[6]  George C. Necula,et al.  Capriccio: scalable threads for internet services , 2003, SOSP '03.

[7]  S. Hand,et al.  Xen 3.0 and the Art of Virtualization , 2010 .

[8]  Yaron Minsky,et al.  Caml trading - experiences with functional programming on Wall Street , 2008, J. Funct. Program..

[9]  Steven Hand,et al.  Scripting the Cloud with Skywriting , 2010, HotCloud.

[10]  Duncan Coutts Birth of the industrial Haskell group , 2009, CUFP '09.

[11]  Jérôme Vouillon,et al.  Lwt: a cooperative thread library , 2008, ML '08.

[12]  Neal Leavitt,et al.  Will NoSQL Databases Live Up to Their Promise? , 2010, Computer.

[13]  Mark P. Jones,et al.  A principled approach to operating system construction in Haskell , 2005, ICFP '05.

[14]  Gernot Heiser,et al.  Hype and Virtue , 2007, HotOS.

[15]  Jonathan S. Shapiro,et al.  EROS: A Principle-Driven Operating System from the Ground Up , 2002, IEEE Softw..

[16]  Xavier Leroy,et al.  The ZINC experiment : an economical implementation of the ML language , 1990 .

[17]  Matthew S. Wilson Constructing and Managing Appliances for Cloud Deployments from Repositories of Reusable Components , 2009, HotCloud.

[18]  Richard Sharp,et al.  Using functional programming within an industrial product group: perspectives and perceptions , 2010, ICFP '10.

[19]  Rob Pike,et al.  Systems Software Research is Irrelevant , 2000 .

[20]  David E. Culler,et al.  SEDA: an architecture for well-conditioned, scalable internet services , 2001, SOSP.

[21]  Antonio Cisternino,et al.  Expert F# (Expert's Voice in .Net) , 2007 .

[22]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[23]  Jonathan Adams,et al.  Design Evolution of the EROS Single-Level Store , 2002, USENIX Annual Technical Conference, General Track.

[24]  Jay Lepreau,et al.  The Flux OSKit: a substrate for kernel and language research , 1997, SOSP.

[25]  Michael Norrish,et al.  Rigorous specification and conformance testing techniques for network protocols, as applied to TCP, UDP, and sockets , 2005, SIGCOMM '05.

[26]  Anil Madhavapeddy,et al.  Statically-typed value persistence for ML , 2010 .

[27]  David L Tennenhouse Layered Multiplexing Considered Harmful , 2008 .

[28]  Eric A. Brewer,et al.  USENIX Association Proceedings of HotOS IX : The 9 th Workshop on Hot Topics in Operating Systems , 2003 .

[29]  Adrian Schüpbach,et al.  The multikernel: a new OS architecture for scalable multicore systems , 2009, SOSP '09.

[30]  David J. Scott,et al.  Melange: creating a "functional" internet , 2007, EuroSys '07.

[31]  Andrew Warfield,et al.  Facilitating the Development of Soft Devices , 2005, USENIX Annual Technical Conference, General Track.