Minimizing datacenter flow completion times with server-based flow scheduling
Minimizing flow completion times (FCT) is a critical issue in datacenter networks. Existing approaches either cannot minimize FCT (i.e., DCTCP) or are costly to deploy with hardware modification on switches (i.e., pFabric). This paper presents a server-based flow scheduling (SFS) scheme for enabling easy and rapid deployment in servers while almost retaining the same minimal FCT as state-of-the-art pFabric. SFS combines traffic control and flow scheduling to keep in-switch queue very short, hence switches do not need to schedule flows and such function can be moved to servers. With SFS, each server keeps its highest-priority flow active and pauses the other low-priority ones. Then flows are completed one by one for minimizing FCT. We propose two novel techniques to achieve SFS. First, the bidirectional flow scheduling technique is used for each server to locally schedule sent or received flows. Second, the most recently seen flow coordination technique is used to coordinate senders and receivers to address the priority disagreement problem. We show that SFS scales to thousands of senders in Incast scenario and achieves zero-queue in the entire networks. Experimental results on NS2 show that SFS outperforms DCTCP and pFabric in Incast scenario. On real workloads in FatTree, SFS achieves 4  faster than DCTCP and closely approaches pFabric in tail FCT of short flows.
flow scheduling datacenter network tcp