Building reliable mobile-aware applications using the Rover toolkit

  • Authors:
  • Anthony D. Joseph;M. Frans Kaashoek

  • Affiliations:
  • MIT Laboratory for Computer Science, Cambridge, MA;MIT Laboratory for Computer Science, Cambridge, MA

  • Venue:
  • Wireless Networks - Special issue: mobile computing and networking: selected papers from MobiCom '96
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper discusses extensions to the Rover toolkit for constructing reliable mobile-aware applications. The extensions improve upon the existing failure model, which addresses client or communication failures and guarantees reliable message delivery from clients to server, but does not address server failures (e.g., the loss of an incoming message due to server failure) (Joseph et al., 1997). Due to the unpredictable, intermittent communication connectivity typically found in mobile client environments, it is inappropriate to make clients responsible for guaranteeing request completion at servers. The extensions discussed in this paper provide both system- and language-level support for reliable operation in the form of stable logging of each message received by a server, per-application stable variables, programmer-supplied failure recovery procedures, server process failure detection, and automatic server process restart. The design and implementation of fault-tolerance support is optimized for high performance in the normal case (network connectivity provided by a high latency, low bandwidth, wireless link): measurements show a best-case overhead of less than 7% for a reliable null RPC over wired and cellular dialup links. Experimental results from both micro-benchmarks and applications, such as the Rover Web Browser proxy, show that support for reliable operation can be provided at an overhead of only a few percent of execution time during normal operation.