Wednesday, June 26, 2013

Marking large flows

Figure 1: Conceptual view of flow scheduling over a datacenter fabric
Deconstructing Datacenter Packet Transport describes how priority marking of packets associated with large flows can improve completion times for flows crossing the data center fabric.
Figure 2: Overall average flow completion time. The results are normalized with respect to the best possible completion time for each flow size.
Figure 2 shows simulation results from the paper, showing that prioritization of short flows over large flows can significantly improve throughput (reducing flow completion times by a factor of 5 or more at high loads).

While the scheme described in the paper proposes changes to the end host behavior, there are practical difficulties in modifying the behavior of all the end hosts. In addition, the paper identifies a complication "whenever a packet traverses multiple hops only to be dropped at a downstream link."
Figure 3: Elements of a combined SDN load balancing and priority marking controller
An interesting alternative can be constructed using a software defined networking (SDN) control application to automatically detect each large flow and dynamically configure the ingress top of rack switch (or virtual switch) to mark its packets. Figure 3 shows the elements of the solution: sFlow measurements from the switches are sent to the sFlow-RT real-time analytics engine which rapidly detects large flows and notifies the Priority Marking application. The Priority Marking application instructs the OpenFlow Controller to mark the packets matching the flow keys and the controller uses OpenFlow to instruct the top of rack switch to mark the packets as they enter the network.

The Load Balancer also listens for large flow events and uses sFlow-RT to monitor the utilization of all the links in the fabric. The Load Balancer determines if the flow needs to be re-routed and sends instructions to the OpenFlow Controller, which uses OpenFlow to instruct the switches to change the forwarding path for the flow, see ECMP load balancing.

Using SDN to manage large flows scales well because a relatively small number of large flows are responsible for the bulk of the data transferred over the network, see SDN and large flows. Combining prioritization and load balancing of large flows offers the promise of much greater improvement than either technique is able to offer on its own. For example, Google's use of SDN to improve the efficiency of their wide area network combines control of forwarding with prioritization of traffic, see SDN and WAN optimization.

No comments:

Post a Comment