This project proposes a comprehensive load-balancing solution to minimize client response time and reduce system costs for services hosted in wide-area networks. The system, called Aster*x, uses the global state of server load and network congestion, and dynamically routes the requests over appropriate (server and path) pairs, calculated using the load-balancing algorithms developed by project staff.
The GENI network infrastructure will be used for extensive deployment, evaluation, and demonstration of Aster*x. Aster*x exploits OpenFlow?s logically centralized controller to obtain the global network state and route flows of various granularities. It will use the PlanetLab and ProtoGENI-based computation substrate to host the replicated web service and to generate client requests from multiple locations. The project will provide an opportunity for students across four universities to collaborate and build a relatively large experimental system on GENI.
Traditional server applications managed increases in load by spreading traffic across a small number of colocated static server replicas . This model is quickly becoming limited due to growing traffic volumes and rising incidence of attacks. It is therefore important to develop new load management techniques that spread load uniformly across a collection of server replicas that are deployed in a distributed fashion across a geographic region. The goal of this project is to design, implement and test at scale new load management techniques for jointly managing network and server load in such distributed server replica settings. While this has been a difficult propostion in traditional networks due to the high overhead of network re-configuration, recent advances in software-defined networking have made such flexible joint control over network and compute resources possible, and the proposed work leverages such advancements. The intellectual merit of this project lies in the development of novel techniques for quickly detecting whether network or compute resources are bottlenecks; new algorithms for systematically addressing the detected bottleneck by either reallocating flows across existing network paths or by redeploying the (new) server replicas at the appropriate locations around the network. These techniques have been implement as modules in a software-defined network controller and have been tested extensively over a large scale testbed. Results show that these techniques can help meet application latency and throughput requirements optimally while using networking and compute resources in the most prudent fashion. The broader impacts of this project include: integration of research results and ideas into graduate and undergraduate courses at UW-Madison, contribution to graduate student theses, and public release of software for joint network and server control.