Learning how to segment flows in the dark
Résumé
To optimize routing of flows in datacenters, SDN controllers receive a packet-in message whenever a new flow appears in the network. Unfortunately, flow arrival rates can peak to millions per second [1], impairing the ability of controllers to treat them on time. Flow scheduling, e.g. [2], copes with such sheer numbers by segmenting the traffic between elephant and mice flows and by treating elephant flows in priority, as they disrupt short lived TCP flows and create bottlenecks. We formulate a flow segmentation problem that segment elephant from mice flows; the aim is to schedule a maximum amount of traffic under a constraint on the maximum rate of packet-in events. We propose a learning algorithm able to perform optimal online flow segmentation. Our solution, based on stochastic approximation techniques, is implemented at the switch level and updated by the controller, with minimal signaling over the control channel. Our approach is blind, i.e., it is agnostic to the flow size distribution. It is also adaptive, since it can track traffic variations over time. We prove its convergence properties and its message complexity. Moreover, we specialize our solution to be robust to traffic classification errors and we provide conditions under which our algorithm still converges to the optimal solution. Extensive numerical experiments characterize the performance of our approach in vitro. Finally, results of the implementation in a real OpenFlow controller demonstrate the viability of our method as a solution in production environments.