Liuba Shrira, Hong Tian, and Douglas B. Terry
Exo-leasing provides a new way to implement escrow synchronization for disconnected applications. A key problem facing disconnected applications is the need to coordinate concurrent operations on shared data objects to avoid conflicts. Escrow synchronization is a well-known technique, useful for inventory control, that avoids conflicts by taking into account the semantics of fragmentable object types. Unfortunately, current techniques cannot be used on generic "commodity" servers because they require the servers to run the type-specific escrow synchronization code. This is a severe limitation for systems that require application-specific synchronization but rely on generic components to exploit economies of scale. Our exo-leasing method provides escrow synchronization without running any type-specific code in the servers. Instead, escrow synchronization code runs in the client, resulting in a modular system with the ability to use generic commodity servers. Running synchronization code in the client provides an additional benefit. Unlike any other system, our system allows a disconnected client to avoid conflicts by coordinating with another disconected client, reducing the need to coordinate 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.