Later Can Be Better
Abstract
Distributed transactions have poor scalability, both in terms of the amount of concurrent transactions, and the number of sites a distributed transaction may involve. One of the major factors that limit distributed transaction scalability is that every site that a transaction involves has to hold data resources until the termination of the entire transaction, i.e., every sub-transaction’s lifetime of resource consumption is bounded to the slowest sub-transaction. There are several solutions to this problem. The basic idea of these solutions is to release data resources as early as possible before the termination of the entire distributed transaction. These solutions either suffer from cascading aborts or require knowledge of application business details such as the use of compensation. In this paper, we present a totally different approach that delays altruistically the execution of fast sub-transactions. We will show that this approach increases concurrency of the entire distributed system without sacrificing transaction response time. Furthermore, this approach assumes no more than strict two-phase locking and requires very little knowledge of specific application business process.
(pdf)