Accelerating Mobile Applications through Flip-Flop Replication

Mobile devices have less computational power and poorer Internet connections than other computers. Computation offload, in which some portions of an application are migrated to a server, has been proposed as one way to remedy this deficiency. Yet, partition-based offload is challenging because it requires applications to accurately predict whether mobile or remote computation will be faster, and it requires that the computation be large enough to overcome the cost of shipping state to and from the server. Further, offload does not currently benefit network-intensive applications. In this paper, we introduce Tango, a new method for using a remote server to accelerate mobile applications. Tango replicates the application and executes it on both the client and the server. Since either the client or the server execution may be faster during different phases of the application, Tango allows either replica to lead the execution. Tango attempts to reduces user-perceived application latency by predicting which replica will be faster and allowing it to lead execution and display output, leveraging the better network and computation resources of the server when the application can benefit from it. It uses techniques inspired by deterministic replay to keep the two replicas in sync, and it uses flip-flop replication to allow leadership to float between replicas. Tango currently works for several unmodified Android applications. In our results, two computation-heavy applications obtain up to 2-3x speedup, and five network applications obtain from 0 to 2.6x speedup.

[1]  Jason Flinn,et al.  The future is cloudy: Reflecting prediction error in mobile applications , 2014, 6th International Conference on Mobile Computing, Applications and Services.

[2]  Srikanth Kandula,et al.  Flashback: A Light-weight Rollback and Deterministic Replay Extension for Software Debugging , 2004 .

[3]  Mahadev Satyanarayanan,et al.  The case for cyber foraging , 2002, EW 10.

[4]  Michael Chow,et al.  Eidetic Systems , 2014, OSDI.

[5]  Jason Flinn,et al.  Slingshot: deploying stateful services in wireless hotspots , 2005, MobiSys.

[6]  Xin Zheng,et al.  Secure web applications via automatic partitioning , 2007, SOSP.

[7]  Fred B. Schneider,et al.  Hypervisor-based fault tolerance , 1996, TOCS.

[8]  Ramesh Govindan,et al.  Odessa: enabling interactive perception applications on mobile devices , 2011, MobiSys '11.

[9]  Jason Flinn,et al.  Can deterministic replay be an enabling tool for mobile computing? , 2011, HotMobile '11.

[10]  Mahadev Satyanarayanan,et al.  Balancing performance, energy, and quality in pervasive computing , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[11]  Stuart I. Feldman,et al.  IGOR: a system for program debugging via reversible execution , 1988, PADD '88.

[12]  Byung-Gon Chun,et al.  CloneCloud: elastic execution between mobile device and cloud , 2011, EuroSys '11.

[13]  Srikanth Kandula,et al.  Flashback: A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging , 2004, USENIX Annual Technical Conference, General Track.

[14]  Galen C. Hunt,et al.  The Coign automatic distributed partitioning system , 1999, OSDI '99.

[15]  Samuel T. King,et al.  ReVirt: enabling intrusion analysis through virtual-machine logging and replay , 2002, OPSR.

[16]  Min Xu ReTrace : Collecting Execution Trace with Virtual Machine Deterministic Replay , 2007 .

[17]  Marek Olszewski,et al.  Kendo: efficient deterministic multithreading in software , 2009, ASPLOS.

[18]  Herbert Bos,et al.  Paranoid Android: versatile protection for smartphones , 2010, ACSAC '10.

[19]  Xu Chen,et al.  COMET: Code Offload by Migrating Execution Transparently , 2012, OSDI.

[20]  Mahadev Satyanarayanan,et al.  Tactics-based remote execution for mobile computing , 2003, MobiSys '03.

[21]  L. Alvisi,et al.  A Survey of Rollback-Recovery Protocols , 2002 .

[22]  Jason Flinn,et al.  Cyber Foraging: Bridging Mobile and Cloud Computing , 2012, Cyber Foraging: Bridging Mobile and Cloud Computing.

[23]  Tal Garfinkel,et al.  VMwareDecoupling Dynamic Program Analysis from Execution in Virtual Environments , 2008, USENIX Annual Technical Conference.

[24]  Alec Wolman,et al.  MAUI: making smartphones last longer with code offload , 2010, MobiSys '10.