Procrastinator: Pacing Mobile Apps’ Usage of the Network.
Many popular, professionally-written smartphone apps today prefetch large amounts of network data to improve performance. However, the typical user may not use all of this network data. When a user is on a limited or pay-per-byte cellular data plan, such as when roaming internationally, this prefetching behavior can cost her in overage fees on her cellular bill. This video demonstrates Procrastinator, which is a system that automatically decides when to fetch each network object that an app requests. This decision is made based on whether the user is on Wi-Fi or cellular, how many bytes are remaining on her data plan, and whether the object is needed at the present time. Procrastinator does not require app developer effort, nor app source code, nor OS changes -- it modifies the app binary to trap specific system calls and inject custom code. Our system can achieve as little as no savings to 4X reduction in total bytes transferred by an app, depending on the user and the app. These savings for the data-poor user come with a 300ms median latency penalty on LTE if the user goes to a part of the app where Procrastinator did not allow data to be prefetched. This video shows how main content on the primary page of apps is unaffected, and the delay that the user will typically experience if she goes to secondary pages in apps when she is running out of cellular data plan bytes..