Skip to Main Content
Mobile systems increasingly are being used for production-grade data-centered applications which require system support for transactional properties. For mobile applications, transactions can hide, to some extent, the infrastructure intrinsic to mobile systems, such as disconnection from the network, dozing, and storage limitations. In this paper, we introduce a framework to understand, specify, and reason about recovery support for transactional functionality, based on the notion of guarantees (promises one subsystem makes to another) and protocols (prescriptions for correct behavior). We apply our framework to a simple mobile system scenario, yielding an abstract specification that exposes the role of each component in achieving specific transactional semantics support, such as the redo-ability of committed updates that might be lost due to a failure; it also reveals unstated assumptions necessary for the correctness of recovery support. We also show how to reason about alternative ways of obtaining the desired transactional support and the requirements on the components to support recovery and transactions.