Shimmy: Shared Memory Channels for High Performance Inter-Container Communication

Authors: 

Marcelo Abranches, Sepideh Goodarzy, Maziyar Nazari, Shivakant Mishra, and Eric Keller, University of Colorado, Boulder

Abstract: 

With the increasing need for more reactive services, and the need to process large amounts of IoT data, edge clouds are emerging to enable applications to be run close to the users and/or devices. Following the trend in hyperscale clouds, applications are trending toward a microservices architecture where the application is decomposed into smaller pieces that can each run in its own container and communicate with each other over a network through well defined APIs. This improves the development effort and deployability, but also introduces inefficiencies in communication. In this paper, we rethink the communication model, and introduce the ability to create shared memory channels between containers supporting both a pub/sub model and streaming model. Our approach is not only applicable to the edge clouds but also beneficial in core cloud environments. Local communication is made more efficient, and remote communication is efficiently supported through synchronizing shared memory regions via RDMA.

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

This content is available to:

Abranches PDF
BibTeX
@inproceedings {234795,
author = {Marcelo Abranches and Sepideh Goodarzy and Maziyar Nazari and Shivakant Mishra and Eric Keller},
title = {Shimmy: Shared Memory Channels for High Performance Inter-Container Communication},
booktitle = {2nd {USENIX} Workshop on Hot Topics in Edge Computing (HotEdge 19)},
year = {2019},
address = {Renton, WA},
url = {https://www.usenix.org/conference/hotedge19/presentation/abranches},
publisher = {{USENIX} Association},
}