User:Madiyarturar/sandbox

CamCube is a direct-connect network topology, in which servers are connected directly to each other forming a 3D torus. Direct connections make wiring efficient due to the possibility of using short cables. Moreover, topology is resilient because any source and destination have several paths making it multipath architecture. CamCube is used in IBM BlueGene/L and Cray XT3/Red Storm supercomputers.

Problem Description
Scalability is one of the main problems of data center networks. With increasing popularity of cloud paradigm the scale of data center also increases and it raises the necessity in high network bandwidth. Even with high cost IP switches and routers it is possible to achieve only 50% of aggregate bandwidth available at the servers.

DCN’s performance and throughput is significantly dependent on its architecture. For example: the most frequent architecture for DCNs, three-tier architecture has poor cross section bandwidth and high over-subscription ratio near the root. Fat-tree architecture solves oversubscription ratio making it 1:1, nevertheless, it raises another problem of low scalability (limitation is the number of ports of a switch). Newer hybrid architecture DCell tackles scalability problem, but cannot perform well under heavy network load.

CamCube Topology
CamCube networking topology is based on a direct-connect topology in which servers are connected directly to each other via 1 Gbps Ethernet cross-over cables, forming 3D torus shape. It is resilient to failure of servers and links, since 3D interconnected torus provides different kind of paths between any source and destination. In this topology, switches are used to connect CamCube servers only with external network but are not responsible for routing internal traffic between the servers. Therefore, not all CamCube servers should be connected to switches. To achieve better application-level performance, each application can implement their own routing protocols with benefit of 3D torus topology and flexibility of CamCube API. However, low routing efficiency compared to other designs could be observed due to comparatively long routing paths in this design.

CamKey
CamCube supports a key-based routing service where packets are routed based on the 3D coordinate (x, y, z) keys rather than server address (IP/MAC addresses). This addressing system is constructed in a way where physical topology is same as addressed virtual topology (CamKey) which makes it easier to find location of servers. Keys in CamCube are expressed with 160-bit identifiers. For example, in case CamCube topology has k-nary 3D-cube, only most significant k bits will be used to generate keys (x, y, z) (figure 1). If the server can be found then the assigned coordinate will be mapped to the server, otherwise the coordinate will be mapped to its neighbors. Hence, the not used 160-k bit will be used as weight to identify neighbor server. In case neighbor of the server is also unreachable then this weight will be assigned to another server. By continuing this kind of cascading failure algorithm CamKey will construct deterministic map of CamCube topology.

Camdoop
Camdoop is a MapReduce-like model in CamCube. It is an efficient in-network aggregation model designed for parallel processing of big sets of data. The difference from MapReduce is that Camdoop benefits from CamCube’s ability of custom forwarding and processing of packets on path. It is enabled due to the topology’s direct-connect nature, meaning that servers are interconnected directly between each other. This ability enables to perform multiple steps of aggregation, consequently decreasing traffic transportation in network without losing performance speed of an algorithm as opposed to a reference of Hadoop and Dryad/DryadLINQ.

CamGraph
A special supporting infrastructure as CamGraph can be used to increase computational performance of CamCube graph algorithms. Firstly, CamGraph divides the factor graph to the partitions using equal factor method and performs message transmission through the partitions. Main benefits of CamGraph is in its accuracy and simplicity of usage in factor graphs. On the other hand, CamGraph’s performance is slower than Map-Reduce as it gets high overheads while running partitioned graph algorithm.

TCP/IP service
In CamCube architecture we can use unmodified TCP/IP application without any struggle using them in applications. In this system packets will be generated by TCP/IP, encapsulated and sent by tunneling through CamCube architecture. Consequently, destination server injects packets in TCP/IP stack. The main goal of using TCP/IP service is as always requested to get maximum throughput .  There can be used different ways of using routing services of TCP/IP. One of them is using multiple shortest paths where routing algorithm calculates all these paths and uses all of them to achieve the maximum throughput. The main drawbacks of this routing algorithm are in its congestion and packet loss problem as the paths can cross each other to make collisions in the network topology. Other routing algorithm is to get paths which are link-disjoint. In this case we use CamCube 3D structure to set links for three axes, in case they do not have any neighbor on the specific axis, routing algorithm adds next neighboring servers to the link list as it implements in CamKey identifiers. As a result, the routing algorithm creates links meanwhile dividing CamCube into mini-cubes. At the end in this routing process there are will be at least three shortest paths and higher throughput while cost of increase of packet delivery jitter.

VM Service
To send large files to various servers (multicasting) the virtual machine (VM) distribution service can be implemented to CamCube structure. VM service works with link-disjoint paths, where union of shortest paths looks like tree structure with small number of interior serves. As routing algorithm creates mini-cube structure in coordinate space of CamCube, VM structure will be hierarchical were smaller cube will be inside of bigger cubes in coordinate system. Consequently, there will be VM distribution tree in CamCube.

CamCube API
There are several core services provided by CamCube API, functioning on all servers. Some of core services are defining 3-dimensional coordinates of each server, exposing coordinate of one-hop neighbors and determining the size of the coordinate space. Furthermore, there is a service, which monitors liveness of one-hop neighbors, in case when some server or link will fail. In order to route packets to servers, there are also multi-hop routing service, which provides link state-based protocol. Services that runs the routing service can modify, intercept or drop a packet. For example, if a server at destination is not reachable, packets are dropped. The routing service uses key-based routing as well as server-based routing. Except these services, all other services run on top of CamCube API.