skip to main content
10.1145/3342195.3387540acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article
Open access

Kollaps: decentralized and dynamic topology emulation

Published: 17 April 2020 Publication History

Abstract

The performance and behavior of large-scale distributed applications is highly influenced by network properties such as latency, bandwidth, packet loss, and jitter. For instance, an engineer might need to answer questions such as: What is the impact of an increase in network latency in application response time? How does moving a cluster between geographical regions affect application throughput? What is the impact of network dynamics on application stability? Currently, answering these questions in a systematic and reproducible way is very hard due to the variability and lack of control over the underlying network. Unfortunately, state-of-the-art network emulation or testbed environments do not scale beyond a single machine or small cluster (i.e., MiniNet), are focused exclusively on the control-plane (i.e., CrystalNet) or lack support for network dynamics (i.e., EmuLab).
In this paper, we address these limitations with Kollaps, a fully distributed network emulator. Kollaps hinges on two key observations. First, from an application's perspective, what matters are the emergent end-to-end properties (e.g., latency, bandwidth, packet loss, and jitter) rather than the internal state of the routers and switches leading to those properties. This premise allows us to build a simpler, dynamically adaptable, emulation model that does not require maintaining the full network state. Second, this simplified model is amenable to be maintained in a fully decentralized way, allowing the emulation to scale with the number of machines required by the application.
Kollaps is fully decentralized, agnostic of the application language and transport protocol, scales to thousands of processes and is accurate when compared against a bare-metal deployment or state-of-the-art approaches that emulate the full state of the network. We showcase how Kollaps can accurately reproduce results from the literature and predict the behaviour of a complex unmodified distributed key-value store (i.e., Cassandra) under different deployments.

References

[1]
1997. Linux Network Emulator. https://www.linux.org/docs/man8/tc-netem.html. Accessed: 2020-03-12.
[2]
2011. Curl. https://curl.haxx.se/. Accessed: 2020-03-12.
[3]
2012. Linux TCP Small Queues. https://lwn.net/Articles/507065/. Accessed: 2020-03-12.
[4]
2015. Summary of the Amazon DynamoDB Service. https://aws.amazon.com/message/5467D2/. Accessed: 2020-03-12.
[5]
2018. Apache Mina. https://mina.apache.org/. Accessed: 2020-03-12.
[6]
2018. Floodlight. http://www.projectfloodlight.org/floodlight/. Accessed: 2020-03-12.
[7]
2018. Memcached. https://memcached.org/. Accessed: 2020-03-12.
[8]
2018. Opendaylight. https://www.opendaylight.org/. Accessed: 2020-03-12.
[9]
2018. POX. https://github.com/noxrepo/pox. Accessed: 2020-03-12.
[10]
2018. u32 Universal Identifiers. http://man7.org/linux/man-pages/man8/tc-u32.8.html. Accessed: 2020-03-12.
[11]
2019. Aeron. https://github.com/real-logic/aeron. Accessed: 2020--03-12.
[12]
2019. Amazon EC2 - T1 micro instances. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts_micro_instances.html. Accessed: 2020-03-12.
[13]
2019. Apache Cassandra. https://cassandra.apache.org/. Accessed: 2020-03-12.
[14]
2019. Docker Security Capabilities. https://docs.docker.com/engine/security/. Accessed: 2020-03-12.
[15]
2019. Docker Swarm. https://docs.docker.com/engine/swarm/. Accessed: 2020-03-12.
[16]
2019. iPerf3. https://github.com/esnet/iperf. Accessed: 2020-03-12.
[17]
2019. Kubernetes. https://kubernetes.io/. Accessed: 2020-03-12.
[18]
2019. Linux LXC. https://linuxcontainers.org/. Accessed: 2020-03-12.
[19]
2019. Linux Traffic Control. https://linux.die.net/man/8/tc.
[20]
2019. Post-mortem Google Cloud Storage Incident. https://status.cloud.google.com/incident/storage/19002. Accessed: 2020-03-12.
[21]
2019. wrk2: A constant throughput, correct latency recording variant of wrk. https://github.com/giltene/wrk2. Accessed: 2020-03-12.
[22]
2020. NoSQL Redis and Memcache traffic generation and benchmarking tool. https://github.com/RedisLabs/memtier_benchmark. Accessed: 2020-03-12.
[23]
M. Avvenuti and A. Vecchio. 2006. Application-level network emulation: the EmuSocket toolkit. Journal of network and computer applications 29, 4 (2006), 343--360.
[24]
Peter Bailis and Kyle Kingsbury. 2014. The Network is Reliable. Queue 12, 7 (2014), 20.
[25]
J. Banks, J.S. Carson, and B.L. Nelson. 2010. Discrete-event System Simulation. Prentice Hall. https://books.google.pt/books?id=cqSNnmrqqbQC
[26]
Albert-László Barabási and Réka Albert. 1999. Emergence of Scaling in Random Networks. Science 286, 5439 (1999), 509--512. arXiv:https://science.sciencemag.org/content/286/5439/509.full.pdf
[27]
Ryan Beckett, Aarti Gupta, Ratul Mahajan, and David Walker. 2018. Control Plane Compression. In Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication (SIGCOMM '18). Association for Computing Machinery, New York, NY, USA, 476--489.
[28]
Alysson Bessani, Joao Sousa, and Eduardo E.P. Alchieri. 2014. State machine replication for the masses with BFT-SMART. Proceedings - 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks, DSN 2014, 355--362.
[29]
Ronald F. Boisvert. 2016. Incentivizing Reproducibility. Commun. ACM 59, 10 (Sept. 2016), 5--5.
[30]
Gaetano Bonofiglio, Veronica Iovinella, Gabriele Lospoto, and Giuseppe Di Battista. 2018. Kathará: A container-based framework for implementing network function virtualization and software defined networks. In 2018 IEEE/IFIP Network Operations and Management Symposium (NOMS'18). 1--9.
[31]
Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, and John Wilkes. 2016. Borg, Omega, and Kubernetes. Queue 14, 1 (2016), 10.
[32]
Marta Carbone and Luigi Rizzo. 2009. Dummynet revisited. ACM SIGCOMM Computer Communication Review 40, 2 (2009), 12.
[33]
Mark Carson and Darrin Santay. 2003. NIST Net: A Linux-Based Network Emulation Tool. ACM SIGCOMM Computer Communication Review 33, 3 (July 2003), 111--126.
[34]
Tushar D. Chandra, Robert Griesemer, and Joshua Redstone. 2007. Paxos Made Live: An Engineering Perspective. In Proceedings of the Twenty-sixth Annual ACM Symposium on Principles of Distributed Computing (PODC '07). ACM, New York, NY, USA, 398--407.
[35]
Brent Chun, David Culler, Timothy Roscoe, Andy Bavier, Larry Peterson, Mike Wawrzoniak, and Mic Bowman. 2003. Planetlab: an overlay testbed for broad-coverage services. ACM SIGCOMM Computer Communication Review 33, 3 (2003), 3--12.
[36]
I. Cidon, R. Rom, and Y. Shavitt. 1999. Analysis of multi-path routing. IEEE/ACM Transactions on Networking 7, 6 (Dec 1999), 885--896.
[37]
Brian F. Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, and Russell Sears. 2010. Benchmarking Cloud Serving Systems with YCSB. In Proceedings of the 1st ACM Symposium on Cloud Computing (SoCC '10). ACM, New York, NY, USA, 143--154.
[38]
E. W. Dijkstra. 1959. A Note on Two Problems in Connexion with Graphs. Numer. Math. 1, 1 (Dec. 1959), 269--271.
[39]
Marius A. Eriksen. 2005. Trickle: A Userland Bandwidth Shaper for Unix-like Systems. In Proceedings of the Annual Conference on USENIX Annual Technical Conference (ATEC '05). USENIX Association, USA, 43.
[40]
Sally Floyd and Eddie Kohler. 2003. Internet research needs better models. ACM SIGCOMM Computer Communication Review 33, 1 (2003), 29--34.
[41]
S. Floyd and V. Paxson. 2001. Difficulties in simulating the Internet. IEEE/ACM Transactions on Networking 9, 4 (Aug 2001), 392--403.
[42]
Diwaker Gupta, Kenneth Yocum, Marvin McNett, Alex C. Snoeren, Amin Vahdat, and Geoffrey M. Voelker. 2005. To Infinity and Beyond: Time Warped Network Emulation. In Proceedings of the Twentieth ACM Symposium on Operating Systems Principles (SOSP '05). 1--2.
[43]
Sangtae Ha, Injong Rhee, and Lisong Xu. 2008. CUBIC: A New TCP-friendly High-speed TCP Variant. ACM SIGOPS Operating Systems Review 42, 5 (July 2008), 64--74.
[44]
Nikhil Handigol, Brandon Heller, Vimalkumar Jeyakumar, Bob Lantz, and Nick McKeown. 2012. Reproducible Network Experiments Using Container-based Emulation. In Proceedings of the 8th International Conference on Emerging Networking Experiments and Technologies (CoNEXT '12). ACM, New York, NY, USA, 253--264.
[45]
Stephen Hemminger. 2005. Network emulation with NetEm. In Proceedings of the Linux Conference.
[46]
Mike Hibler, Robert Ricci, Leigh Stoller, Jonathon Duerig, Shashi Guruprasad, Tim Stack, Kirk Webb, and Jay Lepreau. 2008. Large-Scale Virtualization in the Emulab Network Testbed. In USENIX 2008 Annual Technical Conference (ATC'08). USENIX Association, USA, 113--128.
[47]
David B Ingham and Graham D Parrington. 1994. Delayline: a wide-area network emulation tool. Computing Systems 7, 3 (1994), 313--332.
[48]
V. Jacobson. 1988. Congestion avoidance and control. In Symposium Proceedings on Communications Architectures and Protocols (SIGCOMM '88). Association for Computing Machinery, New York, NY, USA, 314--329.
[49]
Frank Kelly. 1997. Charging and rate control for elastic traffic. European transactions on Telecommunications 8, 1 (1997), 33--37.
[50]
Hormuzd M. Khosravi, Alexey Kuznetsov, Andi Kleen, and Jamal Hadi Salim. 2003. Linux Netlink as an IP Services Protocol. RFC 3549.
[51]
Wonho Kim, Ajay Roopakalu, Katherine Y. Li, and Vivek S. Pai. 2011. Understanding and Characterizing PlanetLab Resource Usage for Federated Network Testbeds. In Proceedings of the 2011 ACM SIGCOMM Conference on Internet Measurement Conference (IMC '11). ACM, New York, NY, USA, 515--532.
[52]
Avinash Lakshman and Prashant Malik. 2010. Cassandra: A Decentralized Structured Storage System. ACM SIGOPS Operating Systems Review 44, 2 (April 2010), 35--40.
[53]
B. Lantz, B. Heller, and N. McKeown. 2010. A network in a laptop: rapid prototyping for software-defined networks. In Ninth Workshop on Hot Topics in Networks (HotNets'10). ACM.
[54]
Lorenzo Leonini, Étienne Rivière, and Pascal Felber. 2009. SPLAY: Distributed Systems Evaluation Made Simple (or How to Turn Ideas into Live Systems in a Breeze). In Proceedings of the 6th USENIX Symposium on Networked Systems Design and Implementation (NSDI'09). USENIX Association, Berkeley, CA, USA, 185--198. http://dl.acm.org/citation.cfm?id=1558977.1558990
[55]
Luca Liechti, Paulo Gouveia, João Neves, Peter Kropf, Miguel Matos, and Valerio Schiavoni. 2019. THUNDERSTORM: a tool to evaluate dynamic network topologies on distributed systems. In 2019 IEEE 38th International Symposium on Reliable Distributed Systems (SRDS '19).
[56]
Hongqiang Harry Liu, Yibo Zhu, Jitu Padhye, Jiaxin Cao, Sri Tallapragada, Nuno P. Lopes, Andrey Rybalchenko, Guohan Lu, and Lihua Yuan. 2017. CrystalNet: Faithfully Emulating Large Production Networks. In Proceedings of the 26th Symposium on Operating Systems Principles (SOSP '17). Association for Computing Machinery, New York, NY, USA, 599--613.
[57]
L. Massoulie and J. Roberts. 2002. Bandwidth sharing: objectives and algorithms. IEEE/ACM Transactions on Networking 10, 3 (June 2002), 320--328.
[58]
Dirk Merkel. 2014. Docker: Lightweight Linux Containers for Consistent Development and Deployment. Linux J. 2014, 239, Article Article 2 (March 2014), 1 pages.
[59]
Alberto Montresor and Márk Jelasity. 2009. PeerSim: A scalable P2P simulator. In Peer-to-Peer Computing, 2009. P2P'09. IEEE Ninth International Conference on. IEEE, 99--100.
[60]
Chris Newcombe, Tim Rath, Fan Zhang, Bogdan Munteanu, Marc Brooker, and Michael Deardeuff. 2015. How Amazon Web Services Uses Formal Methods. Commun. ACM 58, 4 (March 2015), 66--73.
[61]
L. Nussbaum and O. Richard. 2008. Lightweight emulation to study peer-to-peer systems. Concurrency and Computation: Practice and Experience 20, 6 (2008), 735--749.
[62]
J. Padhye, V. Firoiu, D. F. Towsley, and J. F. Kurose. 2000. Modeling TCP Reno performance: a simple model and its empirical validation. IEEE/ACM Transactions on Networking 8, 2 (April 2000), 133--145.
[63]
Vern Paxson and Sally Floyd. 1997. Why We Don't Know How To Simulate The Internet. In In Proceedings of the 1997 Winter Simulation Conference. 1037--1044.
[64]
Roger D Peng. 2011. Reproducible research in computational science. Science 334, 6060 (2011), 1226--1227.
[65]
M. Peuster, J. Kampmeyer, and H. Karl. 2018. Containernet 2.0: A Rapid Prototyping Platform for Hybrid Service Function Chains. In 2018 4th IEEE Conference on Network Softwarization and Workshops (NetSoft). 335--337.
[66]
Manuel Peuster, Holger Karl, and Steven Van Rossem. 2016. Medicine: Rapid prototyping of production-ready network services in multi-pop environments. In Network Function Virtualization and Software Defined Networks (NFV-SDN), IEEE Conference on. IEEE, 148--153.
[67]
Maurizio Pizzonia and Massimo Rimondini. 2008. Netkit: Easy Emulation of Complex Networks on Inexpensive Hardware. In Proceedings of the 4th International Conference on Testbeds and Research Infrastructures for the Development of Networks and Communities (TridentCom '08). ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), Brussels, BEL, Article Article 7, 10 pages.
[68]
Lucian Popa, Praveen Yalagandula, Sujata Banerjee, Jeffrey C. Mogul, Yoshio Turner, and Jose Renato Santos. 2013. ElasticSwitch: Practical Work-Conserving Bandwidth Guarantees for Cloud Computing. ACM SIGCOMM Computer Communication Review 43, 4, 351--362.
[69]
Rahul Potharaju and Navendu Jain. 2013. When the Network Crumbles: An Empirical Study of Cloud Network Failures and Their Impact on Services. In Proceedings of the 4th Annual Symposium on Cloud Computing (SOCC '13). ACM, New York, NY, USA, Article 15, 17 pages.
[70]
Z. Puljiz, R. Penco, and M. Mikuc. 2008. Performance analysis of a decentralized network simulator based on IMUNES. In 2008 International Symposium on Performance Evaluation of Computer and Telecommunication Systems. 519--525.
[71]
Robert Ricci, Jonathon Duerig, Pramod Sanaga, Daniel Gebhardt, Mike Hibler, Kevin Atkinson, Junxing Zhang, Sneha Kasera, and Jay Lepreau. 2007. The Flexlab Approach to Realistic Evaluation of Networked Systems. In Proceedings of the 4th USENIX Conference on Networked Systems Design and Implementation (NSDI'07). USENIX Association, USA, 15.
[72]
Robert Ricci, Eric Eide, and CloudLab Team. 2014. Introducing CloudLab: Scientific infrastructure for advancing cloud architectures and applications. ; login:: the magazine of USENIX & SAGE 39, 6 (2014), 36--38.
[73]
George F. Riley and Thomas R. Henderson. 2010. The ns-3 Network Simulator. In Modeling and Tools for Network Simulation, Klaus Wehrle, Mesut Günes, and James Gross (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 15--34.
[74]
Luigi Rizzo. 1997. Dummynet: a simple approach to the evaluation of network protocols. ACM Computer Communication Review 27, 1 (1997), 31--41.
[75]
Roberto Roverso, Mohammed Al-Aggan, Amgad Naiem, Andreas Dahlstrom, Sameh El-Ansary, Mohammed El-Beltagy, and Seif Haridi. 2008. MyP2PWorld: Highly Reproducible Application-Level Emulation of P2P Systems. In Second IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops (SASOW).
[76]
Valerio Schiavoni, Etienne Rivière, and Pascal Felber. 2013. SplayNet: Distributed User-Space Topology Emulation. In Middleware 2013, David Eyers and Karsten Schwan (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 62--81.
[77]
V. Sinha and M. Wang. 2015. evalBox: A Cross-Platform Evaluation Framework for Network Systems. In 2015 IEEE 23rd International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems. 15--18.
[78]
Joao Sousa and Alysson Bessani. 2016. Separating the WHEAT from the Chaff: An Empirical Design for Geo-Replicated State Machines. Proceedings of the IEEE Symposium on Reliable Distributed Systems 2016-Janua, 146--155.
[79]
Chunqiang Tang. 2009. DSF: A Common Platform for Distributed Systems Research and Development. In Middleware 2009, Jean M. Bacon and Brian F. Cooper (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 414--436.
[80]
Marco Antonio To, Marcos Cano, and Preng Biba. 2015. DOCKEMU - A Network Emulation Tool. Proceedings - IEEE 29th International Conference on Advanced Information Networking and Applications Workshops, WAINA 2015 (2015), 593--598.
[81]
Amin Vahdat, Ken Yocum, Kevin Walsh, Priya Mahadevan, Dejan Kostić, Jeff Chase, and David Becker. 2002. Scalability and accuracy in a large-scale network emulator. ACM SIGOPS Operating Systems Review 36, SI (2002), 271--284.
[82]
Arun Vishwanath, Vijay Sivaraman, and Marina Thottan. 2009. Perspectives on router buffer sizing: Recent results and open problems. ACM SIGCOMM Computer Communication Review 39, 2 (2009), 34--39.
[83]
K. V. Vishwanath, D. Gupta, A. Vahdat, and K. Yocum. 2009. ModelNet: Towards a datacenter emulation environment. In 2009 IEEE Ninth International Conference on Peer-to-Peer Computing. 81--82.
[84]
G. Vu-Brugier, R. S. Stanojevic, D. J. Leith, and R. N. Shorten. 2007. A Critique of Recently Proposed Buffer-sizing Strategies. ACM SIGCOMM Computer Communication Review 37, 1 (Jan. 2007), 43--48.
[85]
SY Wang, CL Chou, and CC Lin. 2007. The design and implementation of the NCTUns network simulation engine. Simulation Modelling Practice and Theory 15, 1 (2007), 57--81.
[86]
Elias Weingärtner, Florian Schmidt, Hendrik Vom Lehn, Tobias Heer, and Klaus Wehrle. 2011. SliceTime: A Platform for Scalable and Accurate Network Emulation. In Proceedings of the 8th USENIX Conference on Networked Systems Design and Implementation (NSDI'11). USENIX Association, USA, 253--266.
[87]
P. Wette, M. Dräxler, A. Schwabe, F. Wallaschek, M. H. Zahraee, and H. Karl. 2014. MaxiNet: Distributed emulation of software-defined networks. In 2014 IFIP Networking Conference. 1--9.
[88]
Brian White, Jay Lepreau, Leigh Stoller, Robert Ricci, Shashi Guruprasad, Mac Newbold, Mike Hibler, Chad Barb, and Abhijeet Joglekar. 2002. An integrated experimental environment for distributed systems and networks. ACM SIGOPS Operating Systems Review 36, SI (2002), 255--270.
[89]
Francis Y. Yan, Jestin Ma, Greg D. Hill, Deepti Raghavan, Riad S. Wahby, Philip Levis, and Keith Winstein. 2018. Pantheon: The Training Ground for Internet Congestion-control Research. In USENIX 2018 Annual Technical Conference (ATC '18). USENIX Association, Berkeley, CA, USA, 731--743. http://dl.acm.org/citation.cfm?id-3277355.3277426
[90]
Jiaqi Yan and Dong Jin. 2017. A lightweight container-based virtual time system for software-defined network emulation. Journal of Simulation 11, 3 (2017), 253--266.

Cited By

View all

Index Terms

  1. Kollaps: decentralized and dynamic topology emulation

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    EuroSys '20: Proceedings of the Fifteenth European Conference on Computer Systems
    April 2020
    49 pages
    ISBN:9781450368827
    DOI:10.1145/3342195
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 17 April 2020

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. containers
    2. distributed systems
    3. dynamic network topology
    4. emulation
    5. experimental reproducibility

    Qualifiers

    • Research-article

    Funding Sources

    • FCT, Fundac?a?o para a Cie?ncia e a Tecnologia

    Conference

    EuroSys '20
    Sponsor:
    EuroSys '20: Fifteenth EuroSys Conference 2020
    April 27 - 30, 2020
    Heraklion, Greece

    Acceptance Rates

    EuroSys '20 Paper Acceptance Rate 43 of 234 submissions, 18%;
    Overall Acceptance Rate 241 of 1,308 submissions, 18%

    Upcoming Conference

    EuroSys '25
    Twentieth European Conference on Computer Systems
    March 30 - April 3, 2025
    Rotterdam , Netherlands

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)285
    • Downloads (Last 6 weeks)30
    Reflects downloads up to 16 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media