SP-PIFO: Approximating Push-In First-Out Behaviors using Strict-Priority Queues

Push-In First-Out (PIFO) queues are hardware primitives which enable programmable packet scheduling by providing the abstraction of a priority queue at line rate. However, implementing them at scale is not easy: just hardware designs (not implementations) exist, which support only about 1k flows. In this paper, we introduce SP-PIFO, a programmable packet scheduler which closely approximates the behavior of PIFO queues using strict-priority queues—at line rate, at scale, and on existing devices. The key insight behind SPPIFO is to dynamically adapt the mapping between packet ranks and available strict-priority queues to minimize the scheduling errors with respect to an ideal PIFO. We present a mathematical formulation of the problem and derive an adaptation technique which closely approximates the optimal queue mapping without any traffic knowledge. We fully implement SP-PIFO in P4 and evaluate it on real workloads. We show that SP-PIFO: (i) closely matches PIFO, with as little as 8 priority queues; (ii) scales to large amount of flows and ranks; and (iii) quickly adapts to traffic variations. We also show that SP-PIFO runs at line rate on existing hardware (Barefoot Tofino), with a negligible memory footprint.

[1]  Ming Liu,et al.  Approximating Fair Queueing on Reconfigurable Switches , 2018, NSDI.

[2]  Alexander Barkalov,et al.  Foundations of Embedded Systems , 2019 .

[3]  Scott Shenker,et al.  Supporting real-time applications in an Integrated Services Packet Network: architecture and mechanism , 1992, SIGCOMM '92.

[4]  Scott Shenker,et al.  Thoughts on load distribution and the role of programmable switches , 2019, CCRV.

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

[6]  Nate Foster,et al.  NetCache: Balancing Key-Value Stores with Fast In-Network Caching , 2017, SOSP.

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

[8]  Gal Shahaf,et al.  Beyond fat-trees without antennae, mirrors, and disco-balls , 2017, SIGCOMM.

[9]  Hari Balakrishnan,et al.  No silver bullet: extending SDN to the data plane , 2013, HotNets.

[10]  Khaled A. Harras,et al.  Eiffel: Efficient and Flexible Software Packet Scheduling , 2018, NSDI.

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

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

[13]  Daniel Raumer,et al.  MoonGen: Software Packet Generation for 10 Gbit and Beyond , 2015, NSDI 2015.

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

[15]  Antonio Capone,et al.  Towards approximate fair bandwidth sharing via dynamic priority queuing , 2017, 2017 IEEE International Symposium on Local and Metropolitan Area Networks (LANMAN).

[16]  Robert C. Daley,et al.  An experimental time-sharing system , 1962, AIEE-IRE '62 (Spring).

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