Razor: Scaling Backend Capacity for Mobile Applications

Yanjiao Chen,Long Lin,Baochun Li
DOI: https://doi.org/10.1109/tmc.2019.2911935
IF: 6.075
2019-01-01
IEEE Transactions on Mobile Computing
Abstract:The dramatic growth of mobile application usage has posed great pressure on application developers to better manage their backend capacity. Rule-based or schedule-based auto-scaling mechanisms have been proposed, but it is difficult or expensive to frequently adjust the backend capacity to track the burstiness of mobile traffic. In this paper, we explore a fundamentally different approach. Instead of scaling the backend in line with the mobile traffic, we smooth out traffic profiles to reduce the required backend capacity and increase its utilization. Our proposed solution, called Razor, is inspired by two key insights on mobile traffic. First, mobile traffic exhibits high short-term fluctuations but steady long-term trend, so that we may temporarily delay user requests and periodically adapt backend capacity based on the predicted traffic volume. Second, user requests have different priorities: while some requests are urgent (e.g., sending a message), some are delay-tolerant (e.g., changing the profile photo) and can be postponed without much influence on the user experience. Based on these observations, our design features a two-tier architecture: on a long timescale, Razor predicts future traffic using machine learning algorithms and plans the optimal backend capacity to minimize the budget with performance guarantee; on a short timescale, Razor schedules which requests to delay and by how much time to delay according to their delay tolerance. We implement a fully-functional prototype of Razor, and evaluate its performance with both real and synthetic traces. Extensive experimental results show that Razor can effectively help mobile application developers reduce their backend cost while guaranteeing the user experience.
What problem does this paper attempt to address?