Scafida
Scafida.[1] is a scale-free data center architecture inspired network generation algorithm. This algorithm was invented by László Gyarmati and Tuan Anh Trinh from Budapest University of Technology and Economics and it is based on the original scale-free network generation algorithm of Barabási - Albert[2]

Description
This structure follows the asymmetric structure (inspired by biological networks) as a contrast to the known symmetric structures commonly used as Fat-tree, DCell or BCube. To avoid the disadvantages of these network architectures, biological networks proved that these structures have preferable properties as they survived the evolutionary competition.
Scale-free networks follow Power-law distribution, they are represented by ultra-small diameter and high error tolerance and easily scalable. Scafida retains these properties and allows to have large node degrees due to the Power-law property.
Algorithm
Description
The network structure is generated iteratively by adding a new node to an existing node with a probability proportional to the node’s degree, putting a constraint on the number of links that a node can have, in order to meet the port number of network routers and switches, which are determined at the beginning of the algorithm.
The algorithm initialises a graph with m initial nodes and a list R used to implement the preferential attachment to store the indices of the network. A new node is added to the network and linked to the initially added nodes; the list R is updated, adding the initial nodes once and the new one m-times.
The nodes, indexed by b, are added to the graph one-by-one until the network has the required number of network devices:
- Each new node receives m links based on the preferential attachment principle.
- The target node selection procedure is executed until m different nodes are selected.
- Check if the picked target node has empty ports and the number of ports can be increased.
- After picking m nodes the list R is updated before adding the next node to the network.
The created network is a logical network and so it can be realized only at the end of the algorithm, when it turns out which nodes will be servers and which will be switches.
Pseudocode
Input:
nt0 — number of servers
pt0 — number of servers’ ports
nt1,...,ntk — number of ti type switches
pt1,...,ptk — number of ports of ti type switches
ati — number of ti type switches already allocated
dv — degree of the node v ∈ V
m — number of links a newly added node has
Algorithm:
G = (V, E) // an empty graph
V = V ∪ {0,1,...,m−1} // add initial nodes
ati = 0; i = 0,...,k // initialization
R = {} // used for preferential attachment
// add initial links to the network
E= E ∪ {(m, 0),(m, 1),...,(m, m−1)}
R = R ∪ {0,...,m−1} // update the index list
R = R ∪ {m,...,m} // m times
b = m + 1 // the index of the next vertex
for b in devices do
V = V ∪ {b} // add the node to the graph
T = {} // store the selected target nodes
while |T| < m do
repeat
vt = random(R) // a random item of R
until vt !∈ T
if dvt !∈ {pt0,...,ptk} then
T = T ∪ {vt}
E = E ∪ {(b, vt)} // add the edge
else
// let dvt = pti w.l.o.g.
// determine whether the switch can be extended
nasw = 0 // number of allocated larger switches
ntsw = 0 // total number of larger switches
for j = 0,...,k do
if ptj > pti then
nasw += atj
ntsw += ntj
if nasw < ntsw then
// the target switch can have more ports
ati = ati − 1
ati+1 = ati+1 + 1
T = T ∪ {vt}
E = E ∪ {(b, vt)}
else
R = R - {vt} // remove vt instances from node pool R
// update the index list
R = R ∪ T
for i = 1,...,m do
R = R ∪ {b}Expansion algorithm
An expansion algorithm[3] was proposed to upgrade an existing Scafida Data center, replacing existing devices with fewer ports in a bottom-up manner without altering the performance of the original one.

Properties
The maximal degree of the nodes in the Scafida network does not alter the properties of scale-free networks for both shortest path and throughput capability.
Shortest path
The average length of the paths can impact the performance of the network, but in the Scafida topology, independently of the size of the network, it increases moderately with the constraint of the degree.
Throughput capability

The bisection bandwidth, used to measure the throughput of a network, is not impacted by the limitation of the degree, consequently the Scafida network is an optimal network to run distributed applications (e.g MapReduce), which need an intensive communication among servers.
Flexibility
Scafida topology is extremely scalable and flexible. The network created this way can have even 50000 servers without a problem.
Scafida is also flexible in the way it can accommodate heterogeneous devices (e.g. servers and switches with different port capacity). With its flexible property, Scafida network can be created out of the parts of state-of-the-art structures.
Error tolerance

The topology behavior to stochastic failures of network equipments is one important factor to consider while making evaluation of any network topology. Scafida network seems to perform relatively well with less error tolerance for such fault even with the constraints on the node degrees.
Observing the number of disjoint shortest paths between servers after a failure event is a good measure of network's tolerance to such failure.
Subjecting the network under a range of failure rates, the Scafida network tends to have a negligible proportion of disconnected servers, and also retains a considerable percentage of nodes with a number of disjoint paths close to the minimum node degree m.
Scafida performs better than the original scale-free networks when comparing the resilience to network device failures particularly because of the absence of nodes with very high degree with significant impact on network connectivity.
Efficient Source Routing (ESR)
Routing on traditional IP addresses is inefficient for Scafida networks, because they have a stochastically heterogeneous topology, so the routing table sizes would be too large.
Therefore, the bloom filters[4] are used to implement an efficient source routing, so unique identifiers, called Bloom IDs, are generated for every link in the topology.
Addressing
Every target server has a Bloom address, given by the logical sum of every link identifiers from the source to the target and containing routing information for the packet.
Bloom addresses have a local validity, because a specific demand can be routed only from the source where the Bloom address was generated.
Forwarding
Any switch compares the address of the packet with the ID’s of their outgoing interface and then the packet will be sent on the matching links.
Path computation
An extended version of the efficient routing algorithm, implemented[5] in the Barabási–Albert method is used as a mechanism for the path computation.

Failure Handling
At the routing level the failure of a network link is detected by the two neighbouring nodes, whereas the failure of a switch/server is detected by all neighbouring nodes. When a failure is detected, a Network Failure (NF) control packet is broadcasted by a node in the network through its active links so all servers are aware of the failure.
The NF control message has a Bloom address of 11...1 and the source of the packet is set as the Bloom ID of the unavailable network link. The source addresses are stored in each switch for a short time period.
An incoming NF packet is forwarded if it is not in the failed links table; otherwise, it is dropped. When a network failure is corrected, a Network Recovery (NR) control packet is broadcasted in the network, notifying the servers about the availability of the restored network equipment.
Cost considerations
Customizing for a set budget
Since Scafida is a scale-free topology, stakeholders can freely choose the amount spent for servers vs switches instead of choosing a specific topology.
Scafida DC can be built with a usage of cheap commodity switches. Cabling cost of Scafida DC does not affect the final cost, but it requires more human effort.
Power consumption[6]
Scafida data centers are energy efficient due to their scalable and flexible structure, indeed the power consumptions can be specified, in advance, by the operator of the system, therefore it consumes only as much power as required for the given data center size.
Scafida can be used to realize structures of any set of network switches, therefore the resulting data center will be energy proportional, meaning that the power consumption is proportional to the number of servers, in contrast to the power consumption of state-of-the-art data center architectures which is not energy proportional.
Implementation
An implementation of a prototype of Scafida is done in OpenFlow[7] using a virtual test network with several hundreds of nodes.
Related topologies
Many data center structures are based on the symmetric property. Fat -tree topologies are using commodity switches arranged in three layers (known as Clos topology).
BCube data center architecture uses a recursive approach algorithm. BCube is intended to use in modular data centers with a few thousands of servers.
DCell is also built recursively, but on the other hand has a small structural level.
Differences between these structures are not only in the number of servers or shortest path, but also in the power consumption.
| Topology | Number of servers | Average path length | Diameter | Average bisection bandwith |
|---|---|---|---|---|
| BCube | 4096 | 7.00 | 8 | 5953.85 |
| Scafida BCube | 4096 | 5.80 | 8 | 5796.45 |
| DCell | 2352 | 4.84 | 5 | 1628.05 |
| Scafida DCell | 2352 | 4.72 | 12 | 1600.02 |
| Fat-tree | 3456 | 5.91 | 6 | 1728.00 |
| Scafida Fat-tree | 3456 | 4.74 | 7 | 1718.60 |
| Balanced tree | 2304 | 3.96 | 4 | 1039.98 |
| Scafida Balanced tree | 2304 | 6.14 | 11 | 1041.12 |
References
- ↑ 1.0 1.1 Gyarmati, László; Trinh, Tuan Anh (2010). "Scafida: A scale-free network inspired data center architecture" (PDF). ACM SIGCOMM Computer Communication Review (COMPUT COMMUN REV). 40: 4–12.
- ↑ Barabási, Albert-László (1999). "Emergence of Scaling in Random Networks". Science. 286: 509–512.
- ↑ Gyarmati, László; Gulyás, András; Sonkoly, Balázs; Trinh, Tuan A.; Biczók, Gergely (June 2013). "Free-scaling your data center". Computer Networks. 57: 1758–1773.
- ↑ Broder, Andrei; Mitzenmacher, Michael (2004). "Network Applications of Bloom Filters: A Survey" (PDF). Internet Mathematics. 1: 485–509.
- ↑ Yan, Gang; Zhou, Tao; Hu, Bo; Zhong-Qian, Fu; Bing-Hong, Wang (2005). "Efficient routing on complex networks". Physical Review. 73 (46108): 046108. arXiv:cond-mat/0505366. doi:10.1103/PhysRevE.73.046108. PMID 16711879.
- ↑ Kim, Jae H.; Lee, Myung J. (2011). Green IT: Technologies and Applications. Berlin: Springer Berlin Heidelberg. pp. 236–240. ISBN 9783642221781. Search this book on
- ↑ McKeown, Nick; Anderson, Tom; Balakrishnan, Hari; Parulkar, Guru; Peterson, Larry; Rexford, Jennifer; Shenker, Scott; Turner, Jonathan (2008). "OpenFlow: Enabling Innovation in Campus Networks" (PDF). ACM SIGCOMM Computer Communication Review. 38: 69–74.
See also
- Scale-free network
- Data Center
- Network topology
- Barabási–Albert model
- Random graph
- Power-law distribution
- Biological network
This article "Scafida" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Scafida. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
