Cloud providers host various services for tenants’ requests (e.g., software-as-a-service) and seek to serve as many requests as possible for revenue maximization. Considering a large number of requests, the previous works on fine-grained request scheduling may lead to poor system scalability (or high schedule overhead) and break tenant isolation. In this article, we design a tenant-grained request scheduling framework to conquer the above two disadvantages. We formulate the tenant-grained request scheduling problem as an integer linear programming and prove its NP-hardness. We consider two complementary cases: the offline case (where we know all request demands in advance), and the online case (where we have to make immediate scheduling decisions for requests arriving online). A normalization-based algorithm with an approximation factor of <inline-formula><tex-math notation="LaTeX">$ {O}(1)$</tex-math></inline-formula> is proposed to solve the offline problem and a primal-dual-based algorithm with a competitive ratio of <inline-formula><tex-math notation="LaTeX">$[(1-\epsilon), {O}(\log 3\cdot n+\log (1/\epsilon))]$</tex-math></inline-formula> is designed for the online scenario, where <inline-formula><tex-math notation="LaTeX">$\epsilon \in (0,1)$</tex-math></inline-formula> and <inline-formula><tex-math notation="LaTeX">$n$</tex-math></inline-formula> is the number of racks in the cloud. We also discuss how to integrate our proposed algorithms with the previous (fine-grained) request scheduling mechanism. Extensive simulation and experiment results show that our algorithms can obtain significant performance gains, e.g., the online algorithm reduces the scheduler's overhead more than <inline-formula><tex-math notation="LaTeX">$90\%$</tex-math></inline-formula> and achieves tenant isolation, while obtaining similar network performance (e.g., throughput) compared with the fine-grained request scheduling methods.
Read full abstract