Abstract
Current approaches to application-specific synchronization suffer from a limitation that precludes the use of generic "commodity" servers because they require to run the type-specific synchronization code at the servers. This is a problem for "cloud computing" systems that must rely on commodity components to exploit economies of scale yet need to adapt to application needs to provide good performance. We describe a new approach that overcomes the limitation. The new approach splits the synchronization code, so that the type-specific code runs outside the server, on the client side, and the generic performance-critical code runs in the server. New type-specific synchronization protocols can be developed without modifying the servers, providing the ability to use commodity servers.