Snapshot Isolation (SI) is a widely adopted concurrency control mechanism in database systems, which utilizes timestamps to resolve conflicts between transactions. However, centralized allocation of timestamps is a potential bottleneck for parallel transaction management. This bottleneck is becoming increasingly visible with the rapidly growing degree of parallelism of today's computing platforms. This paper introduces Posterior Snapshot Isolation (PostSI), an SI mechanism that allows transactions to determine their timestamps autonomously, without relying on centralized coordination. As such, PostSI can scale well, rendering it suitable for various multi-core and MPP platforms. Extensive experiments are conducted to demonstrate its advantage over existing approaches.
Decentralized concurrency control has been studied extensively in the context of distributed or parallel databases @cite_24 @cite_20 @cite_35 . Most systems resort to locking for distributed concurrency control @cite_24 @cite_3 , as locking seems relatively easy to decentralize. To decentralize a locking based concurrency controller, such as 2PL, we maintain a lock table on each data node, such that locking can be performed locally. Dead lock detection is usually necessary for lock based approaches. While distributed dead lock detection requires no centralized coordination, it can be expensive. Similarly, mechanisms of Optimistic Concurrency Control (OCC) are not difficult to decentralize either @cite_19 @cite_41 -- the read and write sets of a transaction can be partitioned and stored locally, and the validation can be conducted separately on each node. However, traditional 2PL and OCC based approaches do not share the advantage of MVCC. They either block or abort transactions when encountering read-write conflicts.
@cite_35 @cite_41 @cite_3 @cite_24 @cite_19 @cite_20
2585130803 1433235304 2127872526 2389944897 2016035261 2018464987
Increasing transaction volumes have led to a resurgence of interest in distributed transaction processing. In particular, partitioning data across several servers can improve throughput by allowing servers to process transactions in parallel. But executing transactions across servers limits the scalability and performance of these systems. In this paper, we quantify the effects of distribution on concurrency control protocols in a distributed environment. We evaluate six classic and modern protocols in an in-memory distributed database evaluation framework called Deneva, providing an apples-to-apples comparison between each. Our results expose severe limitations of distributed transaction processing engines. Moreover, in our analysis, we identify several protocol-specific scalability bottlenecks. We conclude that to achieve truly scalable operation, distributed concurrency control solutions must seek a tighter coupling with either novel network hardware (in the local area) or applications (via data modeling and semantically-aware execution), or both. Distributed storage systems run transactions across machines to ensure serializability. Traditional protocols for distributed transactions are based on two-phase locking (2PL) or optimistic concurrency control (OCC). 2PL serializes transactions as soon as they conflict and OCC resorts to aborts, leaving many opportunities for concurrency on the table. This paper presents ROCOCO, a novel concurrency control protocol for distributed transactions that outperforms 2PL and OCC by allowing more concurrency. ROCOCO executes a transaction as a collection of atomic pieces, each of which commonly involves only a single server. Servers first track dependencies between concurrent transactions without actually executing them. At commit time, a transaction's dependency information is sent to all servers so they can re-order conflicting pieces and execute them in a serializable order. We compare ROCOCO to OCC and 2PL using a scaled TPC-C benchmark. ROCOCO outperforms 2PL and OCC in workloads with varying degrees of contention. When the contention is high, ROCOCO's throughput is 130 and 347 higher than that of 2PL and OCC. This paper presents Granola, a transaction coordination infrastructure for building reliable distributed storage applications. Granola provides a strong consistency model, while significantly reducing transaction coordination overhead. We introduce specific support for a new type of independent distributed transaction, which we can serialize with no locking overhead and no aborts due to write conflicts. Granola uses a novel timestamp-based coordination mechanism to order distributed transactions, offering lower latency and higher throughput than previous systems that offer strong consistency. Our experiments show that Granola has low overhead, is scalable and has high throughput. We implemented the TPC-C benchmark on Granola, and achieved 3× the throughput of a platform using a locking approach. Concurrency control is necessary and important in any multiusers, especially distributed database systems. In the paper we have briefly discussed the questions about concurrency control in distributed database systems, its eritieron of correctness, algorithms and techniques, and some questions related to its implementation such as deadloek, locks in relational database, robustness and so on. There is an ever-increasing demand for more complex transactions and higher throughputs in transaction processing systems leading to higher degrees of transaction concurrency and, hence, higher data contention. The conventional two-phase locking (2PL) Concurrency Control (CC) method may, therefore, restrict system throughput to levels inconsistent with the available processing capacity. This is especially a concern in shared-nothing or data-partitioned systems due to the extra latencies for internode communication and a reliable commit protocol. The optimistic CC (OCC) is a possible solution, but currently proposed methods have the disadvantage of repeated transaction restarts. We present a distributed OCC method followed by locking, such that locking is an integral part of distributed validation and two-phase commit. This method ensures at most one re-execution, if the validation for the optimistic phase fails. Deadlocks, which are possible with 2PL, are prevented by preclaiming locks for the second execution phase. This is done in the same order at all nodes. We outline implementation details and compare the performance of the new OCC method with distributed 2PL through a detailed simulation that incorporates queueing effects at the devices of the computer systems, buffer management, concurrency control, and commit processing. It is shown that for higher data contention levels, the hybrid OCC method allows a much higher maximum transaction throughput than distributed 2PL in systems with high processing capacities. In addition to the comparison of CC methods, the simulation study is used to study the effect of varying the number of computer systems with a fixed total processing capacity and the effect of locality of access in each case. We also describe several interesting variants of the proposed OCC method, including methods for handling access variance, i.e., when rerunning a transaction results in accesses to a different set of objects. Transactional Information Systems is the long-awaited, comprehensive work from leading scientists in the transaction processing field. Weikum and Vossen begin with a broad look at the role of transactional technology in today's economic and scientific endeavors, then delve into critical issues faced by all practitioners, presenting today's most effective techniques for controlling concurrent access by multiple clients, recovering from system failures, and coordinating distributed transactions. The authors emphasize formal models that are easily applied across fields, that promise to remain valid as current technologies evolve, and that lend themselves to generalization and extension in the development of new classes of network-centric, functionally rich applications. This book's purpose and achievement is the presentation of the foundations of transactional systems as well as the practical aspects of the field what will help you meet today's challenges. * Provides the most advanced coverage of the topic available anywhere--along with the database background required for you to make full use of this material. * Explores transaction processing both generically as a broadly applicable set of information technology practices and specifically as a group of techniques for meeting the goals of your enterprise. * Contains information essential to developers of Web-based e-Commerce functionality--and a wide range of more "traditional" applications. * Details the algorithms underlying core transaction processing functionality. Table of Contents PART ONE - BACKGROUND AND MOTIVATION Chapter 1 What Is It All About? Chapter 2 Computational Models PART TWO - CONCURRENCY CONTROL Chapter 3 Concurrency Control: Notions of Correctness for the Page Model Chapter 4 Concurrency Control Algorithms Chapter 5 Multiversion Concurrency Control Chapter 6 Concurrency Control on Objects: Notions of Correctness Chapter 7 Concurrency Control Algorithms on Objects Chapter 8 Concurrency Control on Relational Databases Chapter 9 Concurrency Control on Search Structures Chapter 10 Implementation and Pragmatic Issues PART THREE - RECOVERY Chapter 11 Transaction Recovery Chapter 12 Crash Recovery: Notion of Correctness Chapter 13 Page Model Crash Recovery Algorithms Chapter 14 Object Model Crash Recovery Chapter 15 Special Issues of Recovery Chapter 16 Media Recovery Chapter 17 Application Recovery PART FOUR - COORDINATION OF DISTRIBUTED TRANSACTIONS Chapter 18 Distributed Concurrency Control Chapter 19 Distributed Transaction Recovery PART FIVE - APPLICATIONS AND FUTURE PERSPECTIVES Chapter 20 What Is Next?