Increasing Concurrency without Early Release
Abstract
Distributed transactions have poor scalability. One of the reasons is that every site that a distributed 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 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 process logic.
(pdf)