Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3419111.3421304acmconferencesArticle/Chapter ViewAbstractPublication PagesmodConference Proceedingsconference-collections
research-article

Bypassing the load balancer without regrets

Published: 12 October 2020 Publication History

Abstract

Load balancers are a ubiquitous component of cloud deployments and the cornerstone of workload elasticity. Load balancers can significantly affect the end-to-end application latency with their load balancing decisions, and constitute a significant portion of cloud tenant expenses.
We propose CRAB, an alternative L4 load balancing scheme that eliminates latency overheads and scalability bottlenecks while simultaneously enabling the deployment of complex, stateful load balancing policies. A CRAB load balancer only participates in the TCP connection establishment phase and stays off the connection's datapath. Thus, load balancer provisioning depends on the rate of new connections rather than the actual connection bandwidth. CRAB depends on a new TCP option that enables connection redirection. We provide different implementations for a CRAB load balancer on different technologies, e.g., P4, DPDK, and eBPF, showing that a CRAB load balancer does not require many resources to perform well. We introduce the connection redirection option to the Linux kernel with minor modifications, so that it that can be shipped with the VM images offered by the cloud providers. We show how the same functionality can be achieved with a vanilla Linux kernel using a Netfilter module, while we discuss how CRAB can work while clients and servers remain completely agnostic, based on functionality added on the host.
Our evaluation shows that CRAB pushes the IO bottleneck from the load balancer to the servers in cases where vanilla L4 load balancing does not scale and provides end-to-end latencies that are close to direct communication while retaining all the scheduling benefits of stateful L4 load balancing.

Supplementary Material

MP4 File (p193-kogias-presentation.mp4)

References

[1]
Mohammad Alizadeh, Tom Edsall, Sarang Dharmapurikar, Ramanan Vaidyanathan, Kevin Chu, Andy Fingerhut, Vinh The Lam, Francis Matus, Rong Pan, Navindra Yadav, and George Varghese. 2014. CONGA: distributed congestion-aware load balancing for datacenters. In Proceedings of the ACM SIGCOMM 2014 Conference. 503--514.
[2]
Mohammad Alizadeh, Albert G. Greenberg, David A. Maltz, Jitendra Padhye, Parveen Patel, Balaji Prabhakar, Sudipta Sengupta, and Murari Sridharan. 2010. Data center TCP (DCTCP). In Proceedings of the ACM SIGCOMM 2010 Conference. 63--74.
[3]
João Taveira Araújo, Lorenzo Saino, Lennert Buytenhek, and Raul Landa. 2018. Balancing on the Edge: Transport Affinity without Network State. In Proceedings of the 15th Symposium on Networked Systems Design and Implementation (NSDI). 111--124.
[4]
aws-lb [n.d.]. AWS Elastic Load Balancing. https://aws.amazon.com/elasticloadbalancing/.
[5]
azure [n.d.]. Microsoft Azure Cloud Computing Services. https://azure.microsoft.com.
[6]
azure-kernel [n.d.]. Azure Accelerated Networking. https://docs.microsoft.com/en-us/azure/virtual-network/create-vm-accelerated-networking-cli.
[7]
azure-kernel [n.d.]. Azure kernel patches for Accelerated Networking. https://github.com/microsoft/azure-linux-kernel/blob/master/4.4.116/README.
[8]
azure-lb [n.d.]. Azure Load Balancer. https://docs.microsoft.com/en-us/azure/load-balancer.
[9]
Tom Barbette, Chen Tang, Haoran Yao, Dejan Kostic, Gerald Q. Maguire Jr., Panagiotis Papadimitratos, and Marco Chiesa. 2020. A High-Speed Load-Balancer Design with Guaranteed Per-Connection-Consistency. In Proceedings of the 17th Symposium on Networked Systems Design and Implementation (NSDI). 667--683.
[10]
Barefoot Networks. 2018. Tofino Product Brief. https://barefootnetworks.com/products/brief-tofino/.
[11]
Pat Bosshart, Dan Daly, Glen Gibb, Martin Izzard, Nick McKeown, Jennifer Rexford, Cole Schlesinger, Dan Talayco, Amin Vahdat, George Varghese, and David Walker. 2014. P4: programming protocol-independent packet processors. Computer Communication Review 44, 3 (2014), 87--95.
[12]
Brendan Burns, Brian Grant, David Oppenheimer, Eric A. Brewer, and John Wilkes. 2016. Borg, Omega, and Kubernetes. Commun. ACM 59, 5 (2016), 50--57.
[13]
Michael Dalton, David Schultz, Jacob Adriaens, Ahsan Arefin, Anshuman Gupta, Brian Fahs, Dima Rubinstein, Enrique Cauich Zermeno, Erik Rubow, James Alexander Docauer, Jesse Alpert, Jing Ai, Jon Olson, Kevin DeCabooter, Marc de Kruijf, Nan Hua, Nathan Lewis, Nikhil Kasinadhuni, Riccardo Crepaldi, Srinivas Krishnan, Subbaiah Venkata, Yossi Richter, Uday Naik, and Amin Vahdat. 2018. Andromeda: Performance, Isolation, and Velocity at Scale in Cloud Network Virtualization. In Proceedings of the 15th Symposium on Networked Systems Design and Implementation (NSDI). 373--387.
[14]
dpdk [n.d.]. Data Plane Development Kit. http://www.dpdk.org/.
[15]
Fabien Duchene and Olivier Bonaventure. 2017. Making multipath TCP friendlier to load balancers and anycast. In Proceedings of the 25th IEEE International Conference on Network Protocols (ICNP). 1--10.
[16]
Daniel E. Eisenbud, Cheng Yi, Carlo Contavalli, Cody Smith, Roman Kononov, Eric Mann-Hielscher, Ardas Cilingiroglu, Bin Cheyney, Wentao Shang, and Jinnah Dylan Hosein. 2016. Maglev: A Fast and Reliable Software Network Load Balancer. In Proceedings of the 13th Symposium on Networked Systems Design and Implementation (NSDI). 523--535.
[17]
envoy [n.d.]. Envoy Reverse Proxy. https://www.envoyproxy.io/.
[18]
etcd [n.d.]. etcd: Distributed reliable key-value store for the most critical data of a distributed system. https://github.com/etcd-io/etcd.
[19]
Patrick Th. Eugster, Pascal Felber, Rachid Guerraoui, and Anne-Marie Kermarrec. 2003. The many faces of publish/subscribe. ACM Comput. Surv. 35, 2 (2003), 114--131.
[20]
Daniel Firestone. 2017. VFP: A Virtual Switch Platform for Host SDN in the Public Cloud. In Proceedings of the 14th Symposium on Networked Systems Design and Implementation (NSDI). 315--328.
[21]
Daniel Firestone, Andrew Putnam, Sambrama Mundkur, Derek Chiou, Alireza Dabagh, Mike Andrewartha, Hari Angepat, Vivek Bhanu, Adrian M. Caulfield, Eric S. Chung, Harish Kumar Chandrappa, Somesh Chaturmohta, Matt Humphrey, Jack Lavier, Norman Lam, Fengfen Liu, Kalin Ovtcharov, Jitu Padhye, Gautham Popuri, Shachar Raindel, Tejas Sapre, Mark Shaw, Gabriel Silva, Madhan Sivakumar, Nisheeth Srivastava, Anshuman Verma, Qasim Zuhair, Deepak Bansal, Doug Burger, Kushagra Vaid, David A. Maltz, and Albert G. Greenberg. 2018. Azure Accelerated Networking: SmartNICs in the Public Cloud. In Proceedings of the 15th Symposium on Networked Systems Design and Implementation (NSDI). 51--66.
[22]
Alan Ford, Costin Raiciu, Mark Handley, Olivier Bonaventure, and Christoph Paasch. 2020. TCP Extensions for Multipath Operation with Multiple Addresses. RFC 8684 (2020), 1--68.
[23]
Yu Gan, Yanqi Zhang, Dailun Cheng, Ankitha Shetty, Priyal Rathi, Nayan Katarki, Ariana Bruno, Justin Hu, Brian Ritchken, Brendon Jackson, Kelvin Hu, Meghna Pancholi, Yuan He, Brett Clancy, Chris Colen, Fukang Wen, Catherine Leung, Siyuan Wang, Leon Zaruvinsky, Mateo Espinosa, Rick Lin, Zhongling Liu, Jake Padilla, and Christina Delimitrou. 2019. An Open-Source Benchmark Suite for Microservices and Their Hardware-Software Implications for Cloud & Edge Systems. In Proceedings of the 24th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-XXIV). 3--18.
[24]
Rohan Gandhi, Hongqiang Harry Liu, Y. Charlie Hu, Guohan Lu, Jitendra Padhye, Lihua Yuan, and Ming Zhang. 2014. Duet: cloud scale load balancing with hardware and software. In Proceedings of the ACM SIGCOMM 2014 Conference. 27--38.
[25]
Soudeh Ghorbani, Zibin Yang, Philip Brighten Godfrey, Yashar Ganjali, and Amin Firoozshahian. 2017. DRILL: Micro Load Balancing for Low-latency Data Center Networks. In Proceedings of the ACM SIGCOMM 2017 Conference. 225--238.
[26]
grpc [n.d.]. gRPC. http://www.grpc.io/.
[27]
haproxy [n.d.]. HAProxy. https://haproxy.org.
[28]
Yutaro Hayakawa, Lars Eggert, Michio Honda, and Douglas Santry. 2017. Prism: a proxy architecture for datacenter networks. In Proceedings of the 2017 ACM Symposium on Cloud Computing (SOCC). 181--188.
[29]
Keqiang He, Eric Rozner, Kanak Agarwal, Wes Felter, John B. Carter, and Aditya Akella. 2015. Presto: Edge-based Load Balancing for Fast Datacenter Networks. In Proceedings of the ACM SIGCOMM 2015 Conference. 465--478.
[30]
Benjamin Hindman, Andy Konwinski, Matei Zaharia, Ali Ghodsi, Anthony D. Joseph, Randy H. Katz, Scott Shenker, and Ion Stoica. 2011. Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center. In Proceedings of the 8th Symposium on Networked Systems Design and Implementation (NSDI).
[31]
Guerney Hunt, Erich Nahum, and John Tracey. 1997. Enabling Content-Based Load Distribution for Scalable Services. Technical Report TR-97. IBM T.J. Watson Research Center.
[32]
Murad Kablan, Azzam Alsudais, Eric Keller, and Franck Le. 2017. Stateless Network Functions: Breaking the Tight Coupling of State and Processing. In Proceedings of the 14th Symposium on Networked Systems Design and Implementation (NSDI). 97--112.
[33]
Anuj Kalia, Michael Kaminsky, and David Andersen. 2019. Datacenter RPCs can be General and Fast. In Proceedings of the 16th Symposium on Networked Systems Design and Implementation (NSDI). 1--16.
[34]
David R. Karger, Eric Lehman, Frank Thomson Leighton, Rina Panigrahy, Matthew S. Levine, and Daniel Lewin. 1997. Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web. In Proceedings of the 29th ACM Symposium on the Theory of Computing (STOC). 654--663.
[35]
katran [n.d.]. Facebook's Katran. https://github.com/facebookincubator/katran.
[36]
Naga Praveen Katta, Mukesh Hira, Changhoon Kim, Anirudh Sivaraman, and Jennifer Rexford. 2016. HULA: Scalable Load Balancing Using Programmable Data Planes. In Proceedings of the Symposium on SDN Research (SOSR). 10.
[37]
Marios Kogias, Stephen Mallon, and Edouard Bugnion. 2019. Lancet: A self-correcting Latency Measuring Tool. In Proceedings of the 2019 USENIX Annual Technical Conference (ATC). 881--896.
[38]
Marios Kogias, George Prekas, Adrien Ghosn, Jonas Fietz, and Edouard Bugnion. 2019. R2P2: Making RPCs first-class datacenter citizens. In Proceedings of the 2019 USENIX Annual Technical Conference (ATC). 863--880.
[39]
kubernetes [n.d.]. Kubernestes Container Orechestrator. https://kubernetes.io/.
[40]
Adam Langley, Alistair Riddoch, Alyssa Wilk, Antonio Vicente, Charles Krasic, Dan Zhang, Fan Yang, Fedor Kouranov, Ian Swett, Janardhan R. Iyengar, Jeff Bailey, Jeremy Dorfman, Jim Roskind, Joanna Kulik, Patrik Westin, Raman Tenneti, Robbie Shade, Ryan Hamilton, Victor Vasiliev, Wan-Teh Chang, and Zhongyi Shi. 2017. The QUIC Transport Protocol: Design and Internet-Scale Deployment. In Proceedings of the ACM SIGCOMM 2017 Conference. 183--196.
[41]
Michael Marty, Marc de Kruijf, Jacob Adriaens, Christopher Alfeld, Sean Bauer, Carlo Contavalli, Michael Dalton, Nandita Dukkipati, William C. Evans, Steve Gribble, Nicholas Kidd, Roman Kokonov, Gautam Kumar, Carl Mauer, Emily Musick, Lena Olson, Erik Rubow, Michael Ryan, Kevin Springborn, Paul Turner, Valas Valancius, Xi Wang, and Amin Vahdat. 2019. Snap: a Microkernel Approach to Host Networking. In Proceedings of the 27th ACM Symposium on Operating Systems Principles (SOSP).
[42]
James Murphy McCauley, Aurojit Panda, Arvind Krishnamurthy, and Scott Shenker. 2019. Thoughts on load distribution and the role of programmable switches. Computer Communication Review 49, 1 (2019), 18--23.
[43]
Rui Miao, Hongyi Zeng, Changhoon Kim, Jeongkeun Lee, and Minlan Yu. 2017. SilkRoad: Making Stateful Layer-4 Load Balancing Fast and Cheap Using Switching ASICs. In Proceedings of the ACM SIGCOMM 2017 Conference. 15--28.
[44]
Michael Mitzenmacher. 2001. The Power of Two Choices in Randomized Load Balancing. IEEE Trans. Parallel Distrib. Syst. 12, 10 (2001), 1094--1104.
[45]
Behnam Montazeri, Yilong Li, Mohammad Alizadeh, and John K. Ousterhout. 2018. Homa: a receiver-driven low-latency transport protocol using network priorities. In Proceedings of the ACM SIGCOMM 2018 Conference. 221--235.
[46]
nginx-proxy [n.d.]. NGINX Reverse Proxy. https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/.
[47]
Vladimir Andrei Olteanu, Alexandra Agache, Andrei Voinescu, and Costin Raiciu. 2018. Stateless Datacenter Load-balancing with Beamer. In Proceedings of the 15th Symposium on Networked Systems Design and Implementation (NSDI). 125--139.
[48]
Parveen Patel, Deepak Bansal, Lihua Yuan, Ashwin Murthy, Albert G. Greenberg, David A. Maltz, Randy Kern, Hemant Kumar, Marios Zikos, Hongyu Wu, Changhoon Kim, and Naveen Karri. 2013. Ananta: cloud scale load balancing. In Proceedings of the ACM SIGCOMM 2013 Conference. 207--218.
[49]
Benoit Pit-Claudel, Yoann Desmouceaux, Pierre Pfister, Mark Townsley, and Thomas H. Clausen. 2018. Stateless Load-Aware Load Balancing in P4. In Proceedings of the 26th IEEE International Conference on Network Protocols (ICNP). 418--423.
[50]
Jon Postel. 1981. Transmission Control Protocol. RFC 793 (1981), 1--91.
[51]
Arjun Singh, Joon Ong, Amit Agarwal, Glen Anderson, Ashby Armistead, Roy Bannon, Seb Boving, Gaurav Desai, Bob Felderman, Paulie Germano, Anand Kanagala, Jeff Provost, Jason Simmons, Eiichi Tanda, Jim Wanderer, Urs Hölzle, Stephen Stuart, and Amin Vahdat. 2015. Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google's Datacenter Network. In Proceedings of the ACM SIGCOMM 2015 Conference. 183--197.
[52]
Alex C. Snoeren, David G. Andersen, and Hari Balakrishnan. 2001. Fine-Grained Failover Using Connection Migration. In Proceedings of the 3rd USENIX Symposium on Internet Technologies and Systems (USITS). 221--232.
[53]
swarm [n.d.]. Docer Swarm. https://docs.docker.com/engine/swarm/.
[54]
David Thaler and Christian E. Hopps. 2000. Multipath Issues in Unicast and Multicast Next-Hop Selection. RFC 2991 (2000), 1--9.
[55]
thrift [n.d.]. Apache Thrift. https://thrift.apache.org/.
[56]
url:bind [n.d.]. Berkeley Internet Name Domain (BIND). https://www.bind9.net.
[57]
url:conntrack [n.d.]. Conntrack. https://manpages.debian.org/testing/conntrack/conntrack.8.en.html.
[58]
url:dnsmasq [n.d.]. dnsmasq. http://www.thekelleys.org.uk/dnsmasq/doc.html.
[59]
url:ebpf [n.d.]. extended Berkeley Packet Filter. https://www.iovisor.org/technology/ebpf.
[60]
url:intel-atr [n.d.]. Intel Ethernet Flow Director - Application Targeting Routing. https://software.intel.com/content/www/us/en/develop/articles/setting-up-intel-ethernet-flow-director.html.
[61]
url:kubernetes-doc [n.d.]. Kubernetes Service. https://cloud.google.com/kubernetes-engine/docs/concepts/service.
[62]
url:netfilter [n.d.]. Netfilter. https://www.netfilter.org.
[63]
url:netperf [n.d.]. NetPerf. https://fossies.org/linux/netperf/doc/netperf.pdf.
[64]
url:nginx-tc [n.d.]. Enabling DSR on NGINX. https://www.nginx.com/blog/ip-transparency-direct-server-return-nginx-plus-transparent-proxy.
[65]
url:quic-ietf [n.d.]. The QUIC Transport Protocol - IETF. https://tools.ietf.org/html/draft-ietf-quic-transport-27.
[66]
url:rfs [n.d.]. Receive Flow Steering. https://lwn.net/Articles/382428.
[67]
url:toeplitz [n.d.]. The Toeplitz Hash Algorithm. https://en.wikipedia.org/wiki/Toeplitz_Hash_Algorithm.
[68]
url:xdp [n.d.]. eXpress Data Path. https://www.iovisor.org/technology/xdp.
[69]
Erico Vanini, Rong Pan, Mohammad Alizadeh, Parvin Taheri, and Tom Edsall. 2017. Let It Flow: Resilient Asymmetric Load Balancing with Flowlet Switching. In Proceedings of the 14th Symposium on Networked Systems Design and Implementation (NSDI). 407--420.
[70]
varnish [n.d.]. Varnish. https://varnish-cache.org/.
[71]
Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune, and John Wilkes. 2015. Large-scale cluster management at Google with Borg. In Proceedings of the 2015 EuroSys Conference. 18:1--18:17.
[72]
Junlan Zhou, Malveeka Tewari, Min Zhu, Abdul Kabbani, Leon Poutievski, Arjun Singh, and Amin Vahdat. 2014. WCMP: weighted cost multipathing for improved fairness in data centers. In Proceedings of the 2014 EuroSys Conference. 5:1--5:14.

Cited By

View all
  • (2024)Yuz: Improving Performance of Cluster-Based Services by Near-L4 Session-Persistent Load BalancingIEEE Transactions on Network and Service Management10.1109/TNSM.2023.334196421:2(1929-1942)Online publication date: Apr-2024
  • (2023)Access Control Design Practice and Solutions in Cloud-Native Architecture: A Systematic Mapping StudySensors10.3390/s2307341323:7(3413)Online publication date: 24-Mar-2023
  • (2023)HEELS: A Host-Enabled eBPF-Based Load Balancing SchemeProceedings of the 1st Workshop on eBPF and Kernel Extensions10.1145/3609021.3609307(77-83)Online publication date: 10-Sep-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SoCC '20: Proceedings of the 11th ACM Symposium on Cloud Computing
October 2020
535 pages
ISBN:9781450381376
DOI:10.1145/3419111
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: 12 October 2020

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

SoCC '20
Sponsor:
SoCC '20: ACM Symposium on Cloud Computing
October 19 - 21, 2020
Virtual Event, USA

Acceptance Rates

SoCC '20 Paper Acceptance Rate 35 of 143 submissions, 24%;
Overall Acceptance Rate 169 of 722 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)106
  • Downloads (Last 6 weeks)11
Reflects downloads up to 28 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Yuz: Improving Performance of Cluster-Based Services by Near-L4 Session-Persistent Load BalancingIEEE Transactions on Network and Service Management10.1109/TNSM.2023.334196421:2(1929-1942)Online publication date: Apr-2024
  • (2023)Access Control Design Practice and Solutions in Cloud-Native Architecture: A Systematic Mapping StudySensors10.3390/s2307341323:7(3413)Online publication date: 24-Mar-2023
  • (2023)HEELS: A Host-Enabled eBPF-Based Load Balancing SchemeProceedings of the 1st Workshop on eBPF and Kernel Extensions10.1145/3609021.3609307(77-83)Online publication date: 10-Sep-2023
  • (2023)Evaluation of Load Balancing Optimization with Resource-Based Algorithms on a P4-Based Programmable Data Plane2023 6th International Seminar on Research of Information Technology and Intelligent Systems (ISRITI)10.1109/ISRITI60336.2023.10467870(148-152)Online publication date: 11-Dec-2023
  • (2022)iBalancer: Load-Aware in-Server Flow Scheduling for Sub-Millisecond Tail LatencyIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2021.312002133:8(1761-1774)Online publication date: 1-Aug-2022
  • (2022)Cheetah: A High-Speed Programmable Load-Balancer Framework With Guaranteed Per-Connection-ConsistencyIEEE/ACM Transactions on Networking10.1109/TNET.2021.311337030:1(354-367)Online publication date: Feb-2022
  • (2022)Libra: A Stateful Layer-4 Load Balancer with Fair Load Distribution2022 IEEE International Performance, Computing, and Communications Conference (IPCCC)10.1109/IPCCC55026.2022.9894309(246-253)Online publication date: 11-Nov-2022
  • (2022)An architectural style for scalable choreography-based microservice-oriented distributed systemsComputing10.1007/s00607-022-01139-5105:9(1933-1956)Online publication date: 10-Dec-2022

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media