  Flow scheduling is crucial in data centers, as it directly influences user
experience of applications. According to different assumptions and design
goals, there are four typical flow scheduling problems/solutions: SRPT, LAS,
Fair Queueing, and Deadline-Aware scheduling. When implementing these solutions
in commodity switches with limited number of queues, they need to set static
parameters by measuring traffic in advance, while optimal parameters vary
across time and space. This paper proposes a generic framework, namely
QCluster, to adapt all scheduling problems for limited number of queues. The
key idea of QCluster is to cluster packets with similar weights/properties into
the same queue. QCluster is implemented in Tofino switches, and can cluster
packets at a speed of 3.2 Tbps. To the best of our knowledge, QCluster is the
fastest clustering algorithm. Experimental results in testbed with programmable
switches and ns-2 show that QCluster reduces the average flow completion time
(FCT) for short flows up to 56.6%, and reduces the overall average FCT up to
21.7% over state-of-the-art. All the source code in ns-2 is available in Github
without.

Networking and Internet Architecture