Eiffel: Efficient and Flexible Software Packet Scheduling

Packet scheduling determines the ordering of packets in a queuing data structure with respect to some ranking function that is mandated by a scheduling policy. It is the core component in many recent innovations to optimize network performance and utilization. Our focus in this paper is on the design and deployment of packet scheduling in software. Software schedulers have several advantages over hardware including shorter development cycle and flexibility in functionality and deployment location. We substantially improve current software packet scheduling performance, while maintaining flexibility, by exploiting underlying features of packet ranking; namely, packet ranks are integers and, at any point in time, fall within a limited range of values. We introduce Eiffel, a novel programmable packet scheduling system. At the core of Eiffel is an integer priority queue based on the Find First Set (FFS) instruction and designed to support a wide range of policies and ranking functions efficiently. As an even more efficient alternative, we also propose a new approximate priority queue that can outperform FFS-based queues for some scenarios. To support flexibility, Eiffel introduces novel programming abstractions to express scheduling policies that cannot be captured by current, state-of-the-art scheduler programming models. We evaluate Eiffel in a variety of settings and in both kernel and userspace deployments. We show that it outperforms state of the art systems by 3-40x in terms of either number of cores utilized for network processing or number of flows given fixed processing capacity.

[1]  Alex X. Liu,et al.  Friends, not foes: synthesizing existing transport strategies for data center networks , 2015, SIGCOMM 2015.

[2]  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.

[3]  Patrick Th. Eugster,et al.  A programmable buffer management platform , 2017, 2017 IEEE 25th International Conference on Network Protocols (ICNP).

[4]  Robert N. M. Watson,et al.  Queues Don't Matter When You Can JUMP Them! , 2015, NSDI.

[5]  Rezaul Alam Chowdhury,et al.  Equivalence Between Priority Queues and Sorting , 2008, Encyclopedia of Algorithms.

[6]  Amin Vahdat,et al.  TIMELY: RTT-based Congestion Control for the Datacenter , 2015, Comput. Commun. Rev..

[7]  Srikanth Kandula,et al.  Achieving high utilization with software-driven WAN , 2013, SIGCOMM.

[8]  Brighten Godfrey,et al.  Finishing flows quickly with preemptive scheduling , 2012, CCRV.

[9]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[10]  Wei Bai,et al.  Information-Agnostic Flow Scheduling for Commodity Data Centers , 2015, NSDI.

[11]  Nick Feamster,et al.  Why (and How) Networks Should Run Themselves , 2017, ANRW.

[12]  Hao Wang,et al.  Per-Flow Queue Management with Succinct Priority Indexing Structures for High Speed Packet Scheduling , 2013, IEEE Transactions on Parallel and Distributed Systems.

[13]  Nick McKeown,et al.  Towards Programmable Packet Scheduling , 2015, HotNets.

[14]  Hui Zhang,et al.  Hierarchical packet fair queueing algorithms , 1996, SIGCOMM 1996.

[15]  Nick McKeown,et al.  Experimental study of router buffer sizing , 2008, IMC '08.

[16]  Martín Casado,et al.  The Design and Implementation of Open vSwitch , 2015, NSDI.

[17]  Fabio Checconi,et al.  QFQ: Efficient Packet Scheduling with Tight Bandwidth Distribution Guarantees , 2009 .

[18]  Amin Vahdat,et al.  Carousel: Scalable Traffic Shaping at End Hosts , 2017, SIGCOMM.

[19]  Nan Hua,et al.  Andromeda: Performance, Isolation, and Velocity at Scale in Cloud Network Virtualization , 2018, NSDI.

[20]  Harrick M. Vin,et al.  Start-time fair queueing: a scheduling algorithm for integrated services packet switching networks , 1996, SIGCOMM 1996.

[21]  Nick McKeown,et al.  pFabric: minimal near-optimal datacenter transport , 2013, SIGCOMM.

[22]  Nick McKeown,et al.  Programmable Packet Scheduling at Line Rate , 2016, SIGCOMM.

[23]  Manolis Katevenis,et al.  Pipelined heap (priority queue) management for advanced scheduling in high-speed networks , 2007, IEEE/ACM Trans. Netw..

[24]  Amin Vahdat,et al.  BwE: Flexible, Hierarchical Bandwidth Allocation for WAN Distributed Computing , 2015, Comput. Commun. Rev..

[25]  Anthony Lauck,et al.  Hashed and hierarchical timing wheels: data structures for the efficient implementation of a timer facility , 1987, SOSP '87.

[26]  David A. Maltz,et al.  Data center TCP (DCTCP) , 2010, SIGCOMM 2010.

[27]  Kai Li,et al.  RIPQ: Advanced Photo Caching on Flash for Facebook , 2015, FAST.

[28]  Bernard Chazelle,et al.  The soft heap: an approximate priority queue with optimal error rate , 2000, JACM.

[29]  Van Jacobson,et al.  BBR: Congestion-Based Congestion Control , 2016, ACM Queue.

[30]  Michael L. Fredman,et al.  BLASTING through the information theoretic barrier with FUSION TREES , 1990, STOC '90.

[31]  Bill Lin,et al.  Fast and scalable priority queue architecture for high-speed network switches , 2000, Proceedings IEEE INFOCOM 2000. Conference on Computer Communications. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies (Cat. No.00CH37064).

[32]  Sylvia Ratnasamy,et al.  SoftNIC: A Software NIC to Augment Hardware , 2015 .

[33]  Ajay Gulati,et al.  hClock: hierarchical QoS for packet scheduling in a hypervisor , 2013, EuroSys '13.

[34]  Baochun Li,et al.  On the Fairness-Efficiency Tradeoff for Packet Processing with Multiple Resources , 2014, CoNEXT.

[35]  Amin Vahdat,et al.  SENIC: Scalable NIC for End-Host Rate Limiting , 2014, NSDI.

[36]  ThorupMikkel Equivalence between priority queues and sorting , 2007 .

[37]  Scott Shenker,et al.  Analysis and simulation of a fair queueing algorithm , 1989, SIGCOMM 1989.

[38]  Kushagra Vaid,et al.  Azure Accelerated Networking: SmartNICs in the Public Cloud , 2018, NSDI.

[39]  Peter van Emde Boas,et al.  Preserving order in a forest in less than logarithmic time , 1975, 16th Annual Symposium on Foundations of Computer Science (sfcs 1975).

[40]  Scott Shenker,et al.  Universal Packet Scheduling , 2015, NSDI.

[41]  Vyas Sekar,et al.  Multi-resource fair queueing for packet processing , 2012, CCRV.