Loom: Switch-based Cloud Load Balancer with Compressed States

Layer-4 load balancers play a critical role in large-scale data centers. Recently, load balancers implemented on programmable switches have attracted much attention since they overcome the inflexibility of dedicated load balancers and high latency of software load balancers. However, keeping per-connection state easily leads to storage exhaustion, especially under resource exhaustion attacks. Although several stateless load balancers are proposed to address this issue, the state management burden is offloaded to backend servers, causing high deployment and running costs. In this paper, a load balancer called Loom with compressed states is proposed for large-scale data centers. Firstly, we propose a novel classifier-based load balancer idea to avoid directly maintaining per-connection state. Then, a circulating Bloom filter structure is proposed that can efficiently classify connections as well as be implemented on existing programmable switches. Theoretical analysis shows that Loom can maintain 11 ~ 30x more concurrent connections than those directly storing the 5-tuple of connections. Loom is implemented in hardware P4 switches and experimental results indicate that 11 ~ 29x more concurrent connections can be maintained in Loom, which is close to the theoretical results. Besides, Loom is resistant to resource exhaustion attacks and reduces the percentage of broken connections by up to 57% with an SYN flood.

[1]  Michael Mitzenmacher,et al.  Less hashing, same performance: Building a better Bloom filter , 2006, Random Struct. Algorithms.

[2]  Albert G. Greenberg,et al.  VL2: a scalable and flexible data center network , 2009, SIGCOMM '09.

[3]  Krzysztof Rakowski Learning Apache Thrift , 2015 .

[4]  Michiel H. M. Smid,et al.  On the false-positive rate of Bloom filters , 2008, Inf. Process. Lett..

[5]  Li Fan,et al.  Summary cache: a scalable wide-area web cache sharing protocol , 2000, TNET.

[6]  Ming Zhang,et al.  Understanding data center traffic characteristics , 2010, CCRV.

[7]  Richard Wang,et al.  OpenFlow-Based Server Load Balancing Gone Wild , 2011, Hot-ICE.

[8]  David A. Maltz,et al.  Network traffic characteristics of data centers in the wild , 2010, IMC '10.

[9]  Cheng-Kok Koh,et al.  Rubik: Unlocking the Power of Locality and End-point Flexibility in Cloud Scale Load Balancing , 2015, USENIX Annual Technical Conference.

[10]  Jianping Wu,et al.  Poseidon: Mitigating Volumetric DDoS Attacks with Programmable Switches , 2020, NDSS.

[11]  George Varghese,et al.  P4: programming protocol-independent packet processors , 2013, CCRV.

[12]  Albert G. Greenberg,et al.  Ananta: cloud scale load balancing , 2013, SIGCOMM.

[13]  Michael A. Bender,et al.  Don't Thrash: How to Cache Your Hash on Flash , 2011, Proc. VLDB Endow..

[14]  Marco Chiesa,et al.  A High-Speed Load-Balancer Design with Guaranteed Per-Connection-Consistency , 2020, NSDI.

[15]  Mei Wen,et al.  Programming Protocol-Independent Packet Processors High-Level Programming (P4HLP): Towards Unified High-Level Programming for a Commodity Programmable Switch , 2019, Electronics.

[16]  Xin Li,et al.  SDLB: A Scalable and Dynamic Software Load Balancer for Fog and Mobile Edge Computing , 2017, MECOMM@SIGCOMM.

[17]  Bin Fan,et al.  Cuckoo Filter: Practically Better Than Bloom , 2014, CoNEXT.

[18]  Burton H. Bloom,et al.  Space/time trade-offs in hash coding with allowable errors , 1970, CACM.

[19]  Reuven Cohen,et al.  LB Scalability: Achieving the Right Balance Between Being Stateful and Stateless , 2020, ArXiv.

[20]  Minlan Yu,et al.  SilkRoad: Making Stateful Layer-4 Load Balancing Fast and Cheap Using Switching ASICs , 2017, SIGCOMM.

[21]  Raul Landa,et al.  Balancing on the Edge: Transport Affinity without Network State , 2018, NSDI.

[22]  Carlo Contavalli,et al.  Maglev: A Fast and Reliable Software Network Load Balancer , 2016, NSDI.

[23]  Costin Raiciu,et al.  Stateless Datacenter Load-balancing with Beamer , 2018, NSDI.

[24]  VahdatAmin,et al.  A scalable, commodity data center network architecture , 2008 .

[25]  Ming Zhang,et al.  Congestion Control for Large-Scale RDMA Deployments , 2015, Comput. Commun. Rev..

[26]  Ming Zhang,et al.  Duet: cloud scale load balancing with hardware and software , 2015, SIGCOMM.

[27]  Andrei Broder,et al.  Network Applications of Bloom Filters: A Survey , 2004, Internet Math..

[28]  Amin Vahdat,et al.  A scalable, commodity data center network architecture , 2008, SIGCOMM '08.

[29]  Wesley M. Eddy,et al.  TCP SYN Flooding Attacks and Common Mitigations , 2007, RFC.

[30]  Ye Yu,et al.  Concury: a fast and light-weight software cloud load balancer , 2020, SoCC.