Reliable, Consistent, and Efficient Data Sync for Mobile Apps

Mobile apps need to manage data, often across devices, to provide users with a variety of features such as seamless access, collaboration, and offline editing. To do so reliably, an app must anticipate and handle a host of local and network failures while preserving data consistency. For mobile environments, frugal usage of cellular bandwidth and device battery are also essential. The above requirements place an enormous burden on the app developer. We built Simba, a data-sync service that provides mobile app developers with a high-level local-programming abstraction unifying tabular and object data - a need common to mobile apps - and transparently handles data storage and sync in a reliable, consistent, and efficient manner. In this paper we present a detailed description of Simba's client software which acts as the gateway to the data sync infrastructure. Our evaluation shows Simba's effectiveness in rapid development of robust mobile apps that are consistent under all failure scenarios, unlike apps developed with Dropbox. Simba-apps are also demonstrably frugal with cellular resources.

[1]  Mahadev Satyanarayanan,et al.  Integrating Portable and Distributed Storage , 2004, FAST.

[2]  Andrea C. Arpaci-Dusseau,et al.  ViewBox: integrating local file systems with cloud storage services , 2014, FAST.

[3]  Mahadev Satyanarayanan,et al.  Disconnected Operation in the Coda File System , 1999, Mobidata.

[4]  Mahadev Satyanarayanan,et al.  Flexible and Safe Resolution of File Conflicts , 1995, USENIX.

[5]  Kai Ren,et al.  TABLEFS: Enhancing Metadata Efficiency in the Local File System , 2013, USENIX Annual Technical Conference.

[6]  Mahadev Satyanarayanan,et al.  Data Staging on Untrusted Surrogates , 2003, FAST.

[7]  Michael A. Olson,et al.  The Design and Implementation of the Inversion File System , 1993, USENIX Winter.

[8]  Hamid Pirahesh,et al.  ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging , 1998 .

[9]  Andrea C. Arpaci-Dusseau,et al.  *-Box: Towards Reliability and Consistency in Dropbox-like File Synchronization Services , 2013, HotStorage.

[10]  Fred B. Schneider,et al.  Implementing fault-tolerant services using the state machine approach: a tutorial , 1990, CSUR.

[11]  Gregory Cooper,et al.  Thialfi: a client notification service for internet-scale applications , 2011, SOSP '11.

[12]  Feng Qian,et al.  Periodic transfers in mobile applications: network-wide origin, impact, and optimization , 2012, WWW.

[13]  Carlo Curino,et al.  Mobius: unified messaging and data serving for mobile apps , 2012, MobiSys '12.

[14]  Arun Venkataramani,et al.  Augmenting mobile 3G using WiFi , 2010, MobiSys '10.

[15]  Mahadev Satyanarayanan,et al.  Improving mobile database access over wide-area networks without degrading consistency , 2007, MobiSys '07.

[16]  Cristian Ungureanu,et al.  Building a Delay-Tolerant Cloud for Mobile Data , 2013, 2013 IEEE 14th International Conference on Mobile Data Management.

[17]  Marvin Theimer,et al.  Managing update conflicts in Bayou, a weakly connected replicated storage system , 1995, SOSP.

[18]  Harsha V. Madhyastha,et al.  Simba: tunable end-to-end data consistency for mobile apps , 2015, EuroSys.

[19]  Patrick E. O'Neil,et al.  The log-structured merge-tree (LSM-tree) , 1996, Acta Informatica.

[20]  Ramesh Govindan,et al.  Energy-delay tradeoffs in smartphone applications , 2010, MobiSys '10.

[21]  Catherine C. Marshall,et al.  Docx2Go: collaborative editing of fidelity reduced documents on mobile devices , 2010, MobiSys '10.

[22]  Garth A. Gibson,et al.  PRObE: A Thousand-Node Experimental Cluster for Computer Systems Research , 2013, login Usenix Mag..

[23]  Michael J. Freedman,et al.  A Short Primer on Causal Consistency , 2013, login Usenix Mag..

[24]  Avishay Traeger,et al.  To Zip or not to Zip: effective resource usage for real-time compression , 2013, FAST.

[25]  Feng Qian,et al.  Web caching on smartphones: ideal vs. reality , 2012, MobiSys '12.

[26]  Deborah Estrin,et al.  A first look at traffic on smartphones , 2010, IMC '10.

[27]  Mahadev Satyanarayanan,et al.  Just-in-time provisioning for cyber foraging , 2013, MobiSys '13.

[28]  John K. Ousterhout,et al.  The Role of Distributed State , 1991 .

[29]  Suman Nath,et al.  Automatic and scalable fault detection for mobile applications , 2014, MobiSys.

[30]  Cristian Ungureanu,et al.  Mobile Data Sync in a Blink , 2013, HotStorage.

[31]  KyoungSoo Park,et al.  A disruption-tolerant transmission protocol for practical mobile data offloading , 2012, MobiOpp '12.

[32]  Paramvir Bahl,et al.  Diagnosing mobile applications in the wild , 2010, Hotnets-IX.

[33]  Cristian Ungureanu,et al.  Revisiting storage for smartphones , 2012, TOS.

[34]  Alley Stoughton,et al.  Detection of Mutual Inconsistency in Distributed Systems , 1983, IEEE Transactions on Software Engineering.

[35]  John English Processes and Threads , 2005 .

[36]  Ming Zhang,et al.  Where is the energy spent inside my app?: fine grained energy accounting on smartphones with Eprof , 2012, EuroSys '12.

[37]  Jeffrey C. Mogul,et al.  The case for persistent-connection HTTP , 1995, SIGCOMM '95.

[38]  Erez Zadok,et al.  Building workload-independent storage with VT-trees , 2013, FAST.

[39]  Feng Qian,et al.  An in-depth study of LTE: effect of network protocol and application behavior on performance , 2013, SIGCOMM.

[40]  Robbert van Renesse,et al.  Efficient reconciliation and flow control for anti-entropy protocols , 2008, LADIS '08.