Exo-leasing: Escrow Synchronization for Mobile Clients of Commodity Storage Servers

Download: pdf,

``Exo-leasing: Escrow Synchronization for Mobile Clients of Commodity Storage Servers" by Liuba Shrira (Brandeis), Hong Tian (Amazon), and Doug Terry (Microsoft Research). To appear in ACM/IFIP/Usenix International Middleware Conference (Middleware 2008), Leuven, Belgium, December 2008,


Exo-leasing is a new way to provide escrow synchronization for mobile clients in utility storage systems. A key problem facing mobile applications is the need to coordinate concurrent operations on shared data objects to avoid conflicts. Escrow is a well-known synchronization technique, useful for inventory control, that avoids conflicts by taking into account the semantics of fragmentable object types. Unfortunately, current escrow techniques cannot be used on generic ``commodity'' servers because they require the servers to run the type-specific synchronization code. This is a severe limitation for systems that require application-specific synchronization but rely on generic components.

Our exo-leasing method provides escrow synchronization without running any type-specific code in the servers. Instead, the type-specific sychronization code runs in the client. The result is a modular system with the ability to use generic commodity servers. An important additional benefit of running synchronization code at the client is the ability to provide new functionality. Using exo-leasing, mobile clients can bypass the server and directly coordinate escrow reservations between them, reducing the need to synchronize with the servers. Measurements of a prototype system indicate that our approach achieves escrow-based conflict avoidance at moderate performance overhead on common expected workloads.

BibTeX entry:

   author = {Liuba Shrira and Hong Tian and Doug Terry},
   title = {Exo-leasing: Escrow Synchronization for Mobile Clients of Commodity Storage Servers},
   booktitle = {To appear in ACM/IFIP/Usenix International Conference on Middleware (Middleware 2008)},
   address = {Leuven, Belgium},
   month = December,
   year = {2008}