Abstract:
The present disclosure describes a system and method for reducing total batch completion time using a max-min fairness process. In some implementations, the max-min fairness process described herein reduces the batch completion time by collectively routing the batches in a way that targets providing the same effective path capacity across all requests. More particularly, given a network shared by batches of flows, total throughput is increased with max-min fairness (and therefore batch completion time decreased) if the nth percentile fastest flow of a batch cannot increase its throughput without decreasing the nth percentile fastest flow of another batch whose throughput is not greater than the throughput of the first batch.
Abstract:
The present disclosure describes a system and method for reducing total batch completion time using a per-destination max-min fairness scheme. In a distributed computer system, worker nodes often simultaneously return responses to a server node. In some distributed computer systems, multiple batches can traverse a network at any one given time. The nodes of the network are often unaware of the batches other nodes are sending through the network. Accordingly, in some implementations, the different batches encounter different effective path capacities as nodes send flows through links that are or become bottlenecked. The per-destination max-min fairness scheme described herein reduces the total batch completion time by collectively routing the batches in a way that targets providing substantially uniform transmission times without under underutilizing the network.
Abstract:
A system for configuring a network topology in a data center is disclosed. The data center includes nodes having ports capable of supporting data links that can be connected to other nodes. The system includes a memory and a processing unit coupled to the memory. The processing unit receives demand information indicative of demands between nodes. The processing unit determines a set of constraints on the network topology based on the nodes, feasible data links between the nodes, and the demand information. The processing unit determines an objective function based on a sum of data throughput across data links satisfying demands. The processing unit performs an optimization of the objective function subject to the set of constraints using a linear program. The processing unit configures the network topology by establishing data links between the nodes according to results of the optimization.
Abstract:
A method for weighted routing of data traffic can include generating a first hash value based on a header of a data packet and performing a lookup in a first ECMP table using the first hash value to select a secondary ECMP table from at least two secondary un-weighted ECMP tables, the first ECMP table including a weighted listing of the at least two secondary un-weighted ECMP tables. The method can also include generating a second hash value based on the header of the data packet and performing a lookup in the selected secondary ECMP table based on the second hash value to select an egress port of a plurality of egress ports of the data switch and forwarding the data packet on the selected egress port.
Abstract:
Aspects and implementations of the present disclosure are directed to an indirect generalized hypercube network in a data center. Servers in the data center participate in both an over-subscribed fat tree network hierarchy culminating in a gateway connection to external networks and in an indirect hypercube network interconnecting a plurality of servers in the fat tree. The participant servers have multiple network interface ports, including at least one port for a link to an edge layer network device of the fat tree and at least one port for a link to a peer server in the indirect hypercube network. Servers are grouped by edge layer network device to form virtual switches in the indirect hypercube network and data packets are routed between servers using routes through the virtual switches. Routes leverage properties of the hypercube topology. Participant servers function as destination points and as virtual interfaces for the virtual switches.
Abstract:
A method for weighted routing of data traffic can include generating a first hash value based on a header of a data packet and performing a lookup in a first equal cost multi-path (ECMP) table using the first hash value to select a secondary ECMP table. The first ECMP table can include a weighted listing of at least two secondary ECMP tables. The method can further include generating a second hash value based on the header of the data packet and performing a lookup in the selected secondary ECMP table based on the second hash value to select an egress port of a plurality of egress ports of the data switch. The method can further include forwarding the data packet on the selected egress port.
Abstract:
A system for configuring a network topology in a data center is disclosed. The data center includes nodes having ports capable of supporting data links that can be connected to other nodes. The system includes a memory and a processing unit coupled to the memory. The processing unit receives demand information indicative of demands between nodes. The processing unit determines a set of constraints on the network topology based on the nodes, feasible data links between the nodes, and the demand information. The processing unit determines an objective function based on a sum of data throughput across data links satisfying demands. The processing unit performs an optimization of the objective function subject to the set of constraints using a linear program. The processing unit configures the network topology by establishing data links between the nodes according to results of the optimization.
Abstract:
Aspects and implementations of the present disclosure are directed to an indirect generalized hypercube network in a computer network facility. Servers in the computer network facility participate in both an over-subscribed fat tree network hierarchy culminating in a gateway connection to external networks and in an indirect hypercube network interconnecting a plurality of servers in the fat tree. The participant servers have multiple network interface ports, including at least one port for a link to an edge layer network device of the fat tree and at least one port for a link to a peer server in the indirect hypercube network. Servers are grouped by edge layer network device to form virtual switches in the indirect hypercube network and data packets are routed between servers using routes through the virtual switches. Routes leverage properties of the hypercube topology. Participant servers function as destination points and as virtual interfaces for the virtual switches.
Abstract:
A method for weighted data traffic routing can include receiving a data packet at data switch, where the data switch includes a plurality of egress ports. The method can also include, for each of the egress ports, generating an independent hash value based on one or more fields of the data packet and generating a weighted hash value by scaling the hash value using a scaling factor. The scaling factor can be based on at least two traffic routing weights of a plurality of respective traffic routing weights associated with the plurality of egress ports. The method can further include selecting an egress port of the plurality of egress ports based on the weighted hash value for each of the egress ports and transmitting the data packet using the selected egress port.
Abstract:
A method for weighted data traffic routing can include receiving a data packet at data switch, where the data switch includes a plurality of egress ports. The method can also include, for each of the egress ports, generating an independent hash value based on one or more fields of the data packet and generating a weighted hash value by scaling the hash value using a scaling factor. The scaling factor can be based on at least two traffic routing weights of a plurality of respective traffic routing weights associated with the plurality of egress ports. The method can further include selecting an egress port of the plurality of egress ports based on the weighted hash value for each of the egress ports and transmitting the data packet using the selected egress port.