Jellyfish Data Center Topology Review

Posted by Richard Lucas on Apr 22 2016

What is Jellyfish?

Jellyfish, an incrementally-expandable, high-bandwidth data center networking topology based on randomness.

Definition: a degree-bounded random graph topology among top-of-rack switches.

Basically, it’s an unstructured network that utilizes a randomized topology for interconnection in a data center, unlike, for example a fat tree topology that utilizes hierarchies (Figure 1). It allows for construction of arbitrary-size networks that can be easily incrementally expanded as needs arise in the data center for capacity or bandwidth.

fat-tree-topology.png

Jellyfish challenges

As a result of an unstructured data center network, challenges arise:

  1. Routing
  2. Physical construction
  3. Cabling layout

How it’s constructed

Using the assumption that every switch has the same number of ports and servers, then with N racks, the network supports N(k - r) servers, where k is the number of ports and r is the number of ports used to connect to other racks. So, k - r is the number of ports that can be used to connect to servers.

To wire this up, just pick a random pair of switches with free ports and link them and continue to do this process until all links are exhausted.

Key: Path Length

According to the authors, the end-to-end throughput of a data center’s topology (how fast does data flow through it) isn’t solely dependent on the capacity (bandwidth/speed) of the network. Another important metric is the amount of network capacity that’s consumed in delivering each byte. This is represented in average path length. In order to deliver each byte of data, a network takes a series of hops in delivering that data. The less hops, the lower the average path length, the less network capacity consumed, therefore the faster the data can flow. Jellyfish has a lower average path length than standard hierarchal models.

jellyfish_path_comparison.png (a) Fat-tree path lengths (b) Jellyfish path lengths

Key: Flexibility and Expansion

Jellyfish’s construction is such that incrementally adding even just one server rack or switch is quite simple. The only rewiring necessary is limited to the number of ports being added. Additionally, Jellyfish allows for expansion using newer equipment that may have higher port-counts.

One note here: Expansion may not produce uniform-random graph. However, topologies built incrementally versus those built from scratch show similar capacity throughputs and path lengths.

Key: Resilience

Jellyfish, in the face of failures, still maintains it’s structure. Additionally, Jellyfish, in comparison with a fat-tree topology with less servers, supports the same capacity, path-length, and resilience.

Cabling

In Jellyfish, there are more than twice as many cables running between switches than from servers to switches, so placing all the switches closely together makes sense. It’s suggested that the switch-cluster, where the majority of cables congregate, be placed in the center of the data center, with aggregate cable bundles running to each server-rack. Space should be left in the middle for additional switches and then more servers will just be added to the outside.

In massive data centers, Jellyfish can be adapted with all of the pluses that it offers over fat-tree.

Conclusion

Jellyfish, a random graph based network topology, is a scalable topology for data centers that makes setup and expandability simple. Jellyfish, also, can support 25% more servers than fat-tree, has on-average shorter path-length, is highly failure resilient, and shows network capacity of better than 90% of other known topologies.