Stateless Load-Aware Load Balancing in P4
Autor: | Thomas Clausen, Yoann Desmouceaux, Mark Townsley, Pierre Pfister, Benoit Pit-Claudel |
---|---|
Rok vydání: | 2018 |
Předmět: |
Stateless protocol
Computer science Distributed computing Covert channel 020206 networking & telecommunications 02 engineering and technology Load balancing (computing) 020202 computer hardware & architecture IPv6 Server 0202 electrical engineering electronic engineering information engineering Consistent hashing Implementation Software versioning |
Zdroj: | ICNP |
DOI: | 10.1109/icnp.2018.00058 |
Popis: | Leveraging the performance opportunities offered by programmable hardware, stateless load-balancing architectures allowing line-rate processing are appealing. Moreover, it has been demonstrated that significantly fairer load-balancing can be achieved by an architecture that considers the actual load of application instances when dispatching connection requests. Architectures which maintain per-connection state for resiliency and/or track application load state for fairness are, however, at odds with hardware-imposed memory constraints. Thus, a desirable load-balancer for programmable hardware would be both stateless and able to dispatch queries to application instances according to their current load. This paper presents SHELL, a stateless application-aware load-balancer combining (i) a power-of-choices scheme using IPv6 Segment Routing to dispatch new flows to a suitable application instance from among multiple candidates, and (ii) the use of a covert channel to record/report which flow was assigned to which candidate in a stateless fashion. In addition, consistent hashing versioning is used to ensure that connections are maintained to the correct application instance, using Segment Routing to "browse" through the history when needed. The stateless design of SHELL makes it suitable for hardware implementation, and this paper describes the implementation of a P4-NetFPGA prototype. A performance evaluation of this SHELL implementation demonstrates throughput and latency characteristics comparable to other stateless load-balancing implementations, while enabling application instance-load-aware dispatching and significantly increasing per-connection consistency resiliency. |
Databáze: | OpenAIRE |
Externí odkaz: |