| Cloud computing has emerged as a popular mechanism for deploying services and running applications. A key feature of many cloud environments is the use of virtual machines (VMs) as the unit of resource allocation. Multiple virtual machines running the same application may be co-located on a single physical host, by either chance or design, in which case we can share memory between them, providing fast inter-process communication to applications. It is desirable to use inter-VM shared memory at the framework and service level, providing its advantages to applications transparently.;We present two use cases for inter-VM shared memory. Elastic Phoenix, a MapReduce framework allowing for malleable jobs, demonstrates how inter-VM shared memory allows the easy addition of features to existing frameworks, making them more suitable for cloud computing. Nahanni Memcached, a caching server for web applications, demonstrates how existing services can use inter-VM shared memory to improve performance. |