{"id":87,"date":"2020-02-25T11:23:23","date_gmt":"2020-02-25T10:23:23","guid":{"rendered":"https:\/\/www.kth.se\/blogs\/ultra\/?p=87"},"modified":"2020-02-25T11:23:23","modified_gmt":"2020-02-25T10:23:23","slug":"our-cheetah-paper-at-nsdi-2020-a-high-speed-load-balancer-design-with-guaranteed-per-connection-consistency","status":"publish","type":"post","link":"https:\/\/www.kth.se\/blogs\/ultra\/2020\/02\/our-cheetah-paper-at-nsdi-2020-a-high-speed-load-balancer-design-with-guaranteed-per-connection-consistency\/","title":{"rendered":"Our Cheetah paper at NSDI 2020: &#8220;A High-Speed Load-Balancer Design with Guaranteed Per-Connection-Consistency&#8221;"},"content":{"rendered":"<div class=\"post-content-wrapper\"><p>Tom will present our Cheetah paper at NSDI 2020 this February in Santa Clara, CA. This work on load-balancing across multiple servers comes right after our <a href=\"https:\/\/www.kth.se\/blogs\/ultra\/2020\/01\/rss-presentation-at-conext-2019-in-orlando-florida\/\">RSS++ paper on intra-datacenter load balancing.<\/a> The <a href=\"https:\/\/www.usenix.org\/conference\/nsdi20\/presentation\/barbette\">Cheetah paper is available here<\/a>. This is joint work with Tom Barbette, Chen Tang, Haoran Yao, Dejan Kosti\u0107, Gerald Q. Maguire Jr., Panagiotis Papadimitratos, and Marco Chiesa.<\/p>\n<p>The abstract is below:<\/p>\n<p>Large service providers use load balancers to dispatch millions of incoming connections per second towards thousands of servers. There are two basic yet critical requirements for a load balancer:\u00a0<em>uniform load distribution<\/em>\u00a0of the incoming connections across the servers and\u00a0<em>per-connection-consistency<\/em>\u00a0(PCC), i.e., the ability to map packets belonging to the same connection to the same server even in the presence of changes in the number of active servers and load balancers. Yet, meeting both these requirements at the same time has been an elusive goal. Today&#8217;s load balancers minimize PCC violations at the price of non-uniform load distribution.<\/p>\n<p>This paper presents Cheetah, a load balancer that supports uniform load distribution and PCC while being scalable, memory efficient, resilient to clogging attacks, and fast at processing packets. The Cheetah LB design guarantees PCC for\u00a0<em>any<\/em>\u00a0realizable server selection load balancing mechanism and can be deployed in both a stateless and stateful manner, depending on the operational needs. We implemented Cheetah on both a software and a Tofino-based hardware switch. Our evaluation shows that a stateless version of Cheetah guarantees PCC, has negligible packet processing overheads, and can support load balancing mechanisms that reduce the flow completion time by a factor of\u00a0<span class=\"\" data-katex-src=\"2-3\"><span class=\"katex\"><span class=\"katex-mathml\">2-<\/span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"mord\">3<\/span><\/span><\/span><\/span><\/span>x.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Tom will present our Cheetah paper at NSDI 2020 this February in Santa Clara, CA. This work on load-balancing across multiple servers comes right after our RSS++ paper on intra-datacenter load balancing. The Cheetah paper is available here. This is joint work with Tom Barbette, Chen Tang, Haoran Yao, Dejan Kosti\u0107, Gerald Q. Maguire Jr., [&hellip;]<\/p>\n","protected":false},"author":621,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-87","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paeZPD-1p","_links":{"self":[{"href":"https:\/\/www.kth.se\/blogs\/ultra\/wp-json\/wp\/v2\/posts\/87","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kth.se\/blogs\/ultra\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kth.se\/blogs\/ultra\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kth.se\/blogs\/ultra\/wp-json\/wp\/v2\/users\/621"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kth.se\/blogs\/ultra\/wp-json\/wp\/v2\/comments?post=87"}],"version-history":[{"count":1,"href":"https:\/\/www.kth.se\/blogs\/ultra\/wp-json\/wp\/v2\/posts\/87\/revisions"}],"predecessor-version":[{"id":88,"href":"https:\/\/www.kth.se\/blogs\/ultra\/wp-json\/wp\/v2\/posts\/87\/revisions\/88"}],"wp:attachment":[{"href":"https:\/\/www.kth.se\/blogs\/ultra\/wp-json\/wp\/v2\/media?parent=87"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kth.se\/blogs\/ultra\/wp-json\/wp\/v2\/categories?post=87"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kth.se\/blogs\/ultra\/wp-json\/wp\/v2\/tags?post=87"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}