Abstract-In software-defined networking (SDN), as data plane scale expands, scalability and reliability of the control plane have become major concerns. To mitigate such concerns, two kinds of solutions have been proposed separately. One is multicontroller architecture, i.e., a logically centralized control plane with physically distributed controllers. The other is control devolution, i.e., delegating control of some flows back to switches. Most of existing solutions adopt either static switch-controller association or static devolution, which may not adapt well to the traffic variation, leading to high communication costs between switches and controller, and high computation costs of switches. In this paper, we propose a novel scheme to jointly consider both solutions, i.e., we dynamically associate switches with controllers and dynamically devolve control of flows to switches. Our scheme is an efficient online algorithm that does not need the statistics of traffic flows. By adjusting a parameter, we can make a tradeoff between costs and queue backlogs. Theoretical analysis and extensive simulations show that our scheme yields much lower costs or latency compared to other schemes, as well as balanced loads among controllers.In the last decade, cloud computing has emerged as the most influential computing paradigm to enable on-demand service hosting and delivery. Despite its importance, efficient resource allocation and network management in data centers are still main challenges to cloud providers.Previous works have proposed a variety of solutions to related problems, such as ensemble routing [15], energy budgeting [6], workflow scheduling [10], virtual slice provisioning [14], VM placement [20], etc. Meanwhile, softwaredefined networking (SDN) provides an alternative perspective to manage the whole network. The key idea of SDN is to decouple the control plane from the data plane [12]. In such a way, data plane can focus on performing basic functionalities such as packet forwarding at high speed, while the logically centralized control plane manages the whole network. Usually, switches send requests to the control plane for processing some flow events, e.g., flow install events.The control plane is a potential bottleneck of SDN in terms of scalability and reliability. As the data plane expands, control plane may not be able to process the increasing number of requests if implemented with a single controller, resulting unacceptable latency to flow setup. Reliability is also an issue since a single controller is a single point of failure, which may result in the break-down of the control plane and the entire network.Existing proposals to address such problems fall broadly into two categories. One is to implement the control plane as a distributed system with multiple controllers [7] For switch-controller association, the first category of solution, the usual design choice is to make a static switchcontroller association [7] [17]. However, such static association may result in overloading of controllers and inc...