VII. CellShift: A System to Efficiently Time-shift Data on the Cellular Net-
7.6 Discussion and future work
There are a few promising directions for future work. First, we have shown by simu- lating perfect prefetching that our biggest challenge in creating an effective time-shifting system is in the accuracy of our forecasts. Possible future directions include leveraging fine-grained user movement patterns directly, detecting anomalies in daily motion patterns, or even having the device get network utilization from the eNodeB every few seconds dur- ing a time slot where it is scheduled fulfill a request, although that would likely have a much higher energy overhead.
Furthermore, some types of loads can be more effectively scheduled than others, mo- tivating which types of traffic should be targeted by such a system. Time-shifting most dramatically reduces loads on the network caused by large, bursty downloads, especially during peak hours, but there is less room to improve loads occurring more predominantly during off-peak hours. Furthermore, if all eNodeBs are congested, the benefits are minimal, since time-shifting allows us to use resources more efficiently rather than add network ca- pacity. For instance, time-shifting content such as music or podcasts would be a particularly promising approach: users may want to listen to them during peak hours, they are gener- ated in advance, they probably reflect predictable user preferences, and they contribute a substantial amount to network loads.
In developing CellShift, we have demonstrated that network loads vary significantly throughout the day, and that these variations are at least partially predictable (as well as identified limits on the predictability of this content). While we have presented one system which can leverage these predictions, we expect that these forecasts could be valuable in other ways. For instance, users could query such a database to determine what sorts of network loads to expect at a particular time and place, such as when travelling, or a gaming app could suggest entering a multiplayer or single-player mode depending on forecasted network conditions. Network operators may also find these forecasts facilitate network management, another interesting direction to explore in future work.
We do not consider the possibility of malicious devices trying to subvert the system, but as users must register a specific device with the system, identifying badly behaving users — such as users deliberately sending large amounts of data when network load is highest — would be straightforward. Finally, although we have analyzed our system on a large scale through trace-driven analysis, we have not deployed a prototype system on such a scale. Ideally, we would deploy and evaluate such a system with a large number of representative users in a major metropolitan area to fully evaluate its effectiveness.
7.7
Conclusion
In this chapter, we first showed that there are substantial variations in network load in heavily used networks that can be predicted. We then presented a system, CellShift, that can effectively time-shift content on cellular networks to leverage these variations, reduc- ing the impact of CellShift-controlled network requests on eNodeB capacity by more than 50%. Furthermore, we can achieve these results in a network where the majority of data is time-sensitive and thus unknown to CellShift in advance, by modelling future network loads based on past trends. CellShift is a lightweight system that requires devices to sub- mit requests to a per-eNodeB coordination server no more than a few times an hour, and schedules data by making only immediate, local decisions intermittently, with scheduling performed only at the eNodeB level. Nevertheless, CellShift achieves strong results in re- ducing network load overall. As the challenges in creating a practical time-shifting system have yet to be examined, namely predicting network load and scheduling content accord- ingly over long time scales in large and highly complex cellular networks, we also examine a number of alternate design approaches. CellShift compares favorably against them, show- ing that our approach offers a good tradeoff between overhead and effectiveness in making use of free network capacity to reduce peak loads.
CHAPTER VIII
Predicting App Network Traffic to Facilitate Prefetching
8.1
Introduction
Ensuring good performance on network-dependent mobile apps remains challenging. One possible solution is prefetching: not just long-term prefetching, but prefetching a on the order of a few hundred milliseconds in advance as well. A common problem in prefetching systems is determining what to prefetch. In addition, there are other cases where knowing what content will arrive in the future will facilitate decisions that can lead to improved performance, such as in Server Push.
In this chapter, we examine this problem in two parts. We first introduce two tools that allow application behavior to be predicted, and evaluate them using network traces. We then examine how these tools can be applied to real-world prefetching systems, and discuss the challenges that would need to be overcome for automated prefetching to be possible.
First, we examine two approaches to predicting app behavior: determining what activity a user will visit next, and determining what network requests will be issued soon (e.g. in the next activity). The former problem, as it turns out, is relatively straightforward to solve, as certain activity transitions are consistently far more common than others. This could allow static requests to be prefetched, that are the same each time the Activity is loaded. Determining more generally what requests will be issued soon is more challenging. We are
able to do so with a median accuracy of about 60% of requests, but there are challenges in applying this to a real system.
For the second problem of predicting app requests, we examine only a subset of apps: apps which rely on network traffic to fetch content, and leverage one or more HTML, JSON or XML files to determine what to fetch. News and social media apps are examples of such apps: games, video conferencing services, and chat services are not. We infer the structure of these apps — what series of requests lead to content being fetched, and how the app determines what parameters to pass along with the URL — and based on this model, predict what content will be fetched in the future. About 60% of objects are fetched in the median case in our trace-based simulation, and about 65% of bytes are fetched, although the success rate varies greatly by application. A major limitation, however, is that a substantial amount of extra data is fetched: often sometimes several times as much as what is needed. This limitation means that automated prefetching is likely not yet ready for real-world applications.
Next, we examine the challenges of applying these approaches to real systems. As a motivating use case, we consider a prefetching system built around cloudlets. Cloudlets have been proposed as a method to address many of the limitations of mobile devices, by offloading functionality to machines near access points [125, 110, 39, 12, 46, 109]. Acting as a proxy, they could prefetch content for user devices, and observe and predict mobile traffic. We discuss how our prediction system would apply to a cloudlet system and what would be needed to make such a system feasible. We find there are several obstacles to achieving the results in our trace-based evaluation. In particular, we find that the time to download content is a challenge, limiting how much content can be predicted and fetched in time for a real system. We discuss some potential approaches to address this problem, which would require future research directions.
Considering how this project supports this dissertation’s thesis, it addresses not just to the complex and dynamic nature of network performance, which can be masked through
prefetching, but also leverages the unique nature of mobile app behavior. The measure- ments in question are not numerical measurements per se, so much as ongoing observations of the contents of network requests, and where and in response to what these requests occur. Using these measurements, we hope to be able to support systems, such as prefetching sys- tems, that can improve performance on mobile devices. In this way, this section supports the thesis statement that because mobile devices experience uniquely dynamic and complex network conditions and resource tradeoffs, incorporating ongoing, continuous measure- ments of network performance, resource usage and user and app behavior into mobile systems is essential in addressing the pervasive performance problems in these systems..
The main contributions of this chapter are as follows:
• An investigation of the predictability of activity transitions, determining that over half of all activity transitions are the most common transition, and the three most common activity transitions make up almost all activity transitions.
• An approach for predicting URLs requested based on prior network traffic, as well as the parameters passed with those URLs, with about 60% accuracy for a large class of apps in a trace-based evaluation.
• An examination of the feasibility of automated prefetching, the limitations of URL prediction for prefetching, and of what is needed to work towards an effective, truly automated cloudlet prefetching system that can achieve similar results to the trace- based evaluation.