Topic
Multiversion concurrency control
About: Multiversion concurrency control is a research topic. Over the lifetime, 1605 publications have been published within this topic receiving 43880 citations. The topic is also known as: MVCC.
Papers published on a yearly basis
Papers
More filters
••
15 Jun 2005TL;DR: This paper presents a new concurrency model, based on transactional memory, that offers far richer composition, and describes new modular forms of blocking and choice that have been inaccessible in earlier work.
Abstract: Writing concurrent programs is notoriously difficult, and is of increasing practical importance. A particular source of concern is that even correctly-implemented concurrency abstractions cannot be composed together to form larger abstractions. In this paper we present a new concurrency model, based on transactional memory, that offers far richer composition. All the usual benefits of transactional memory are present (e.g. freedom from deadlock), but in addition we describe new modular forms of blocking and choice that have been inaccessible in earlier work.
815 citations
•
01 Mar 2008
TL;DR: In this paper, the authors provide a comprehensive real world concurrency bug characteristic study and provide useful guidance for concurrent bug detection, testing, and concurrent programming language design, which can be used to detect concurrency bugs.
Abstract: The reality of multi-core hardware has made concurrent programs pervasive. Unfortunately, writing correct concurrent programs is dif#2;cult. Addressing this challenge requires advances in multiple directions, including concurrency bug detection, concurrent program testing, concurrent programming model design, etc. Designing effective techniques in all these directions will signi#2;cantly bene#2;t from a deep understanding of real world concurrency bug characteristics. This paper provides the #2;rst (to the best of our knowledge) comprehensive real world concurrency bug characteristic study. Specifically, we have carefully examined concurrency bug patterns, manifestation, and #2;x strategies of 105 randomly selected real world concurrency bugs from 4 representative server and client opensource applications (MySQL, Apache, Mozilla and OpenOf#2;ce). Our study reveals several interesting #2;ndings and provides useful guidance for concurrency bug detection, testing, and concurrent programming language design. Some of our #2;ndings are as follows: (1) Around one third of the examined non-deadlock concurrency bugs are caused by violation to programmers' order intentions, which may not be easily expressed via synchronization primitives like locks and transactional memories; (2) Around 34% of the examined non-deadlock concurrency bugs involve multiple variables, which are not well addressed by existing bug detection tools; (3) About 92% of the examined concurrency bugs can be reliably triggered by enforcing certain orders among no more than 4 memory accesses. This indicates that testing concurrent programs can target at exploring possible orders among every small groups of memory accesses, instead of among all memory accesses; (4) About 73% of the examined non-deadlock concurrency bugs were not #2;xed by simply adding or changing locks, and many of the #2;xes were not correct at the #2;rst try, indicating the dif#2;culty of reasoning concurrent execution by programmers.
811 citations
••
01 Mar 2008TL;DR: This study carefully examined concurrency bug patterns, manifestation, and fix strategies of 105 randomly selected real world concurrency bugs from 4 representative server and client open-source applications and reveals several interesting findings that provide useful guidance for concurrency Bug detection, testing, and concurrent programming language design.
Abstract: The reality of multi-core hardware has made concurrent programs pervasive. Unfortunately, writing correct concurrent programs is difficult. Addressing this challenge requires advances in multiple directions, including concurrency bug detection, concurrent program testing, concurrent programming model design, etc. Designing effective techniques in all these directions will significantly benefit from a deep understanding of real world concurrency bug characteristics.This paper provides the first (to the best of our knowledge) comprehensive real world concurrency bug characteristic study. Specifically, we have carefully examined concurrency bug patterns, manifestation, and fix strategies of 105 randomly selected real world concurrency bugs from 4 representative server and client open-source applications (MySQL, Apache, Mozilla and OpenOffice). Our study reveals several interesting findings and provides useful guidance for concurrency bug detection, testing, and concurrent programming language design.Some of our findings are as follows: (1) Around one third of the examined non-deadlock concurrency bugs are caused by violation to programmers' order intentions, which may not be easily expressed via synchronization primitives like locks and transactional memories; (2) Around 34% of the examined non-deadlock concurrency bugs involve multiple variables, which are not well addressed by existing bug detection tools; (3) About 92% of the examined concurrency bugs canbe reliably triggered by enforcing certain orders among no more than 4 memory accesses. This indicates that testing concurrent programs can target at exploring possible orders among every small groups of memory accesses, instead of among all memory accesses; (4) About 73% of the examinednon-deadlock concurrency bugs were not fixed by simply adding or changing locks, and many of the fixes were not correct at the first try, indicating the difficulty of reasoning concurrent execution by programmers.
800 citations
•
30 May 2001TL;DR: The authors 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.
Abstract: 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?
609 citations
••
22 Jun 2013TL;DR: An overview of the design of the Hekaton engine is given and some experimental results are reported, designed for high con-currency and using only latch-free data structures and a new optimistic, multiversion concurrency control technique.
Abstract: Hekaton is a new database engine optimized for memory resident data and OLTP workloads. Hekaton is fully integrated into SQL Server; it is not a separate system. To take advantage of Hekaton, a user simply declares a table memory optimized. Hekaton tables are fully transactional and durable and accessed using T-SQL in the same way as regular SQL Server tables. A query can reference both Hekaton tables and regular tables and a transaction can update data in both types of tables. T-SQL stored procedures that reference only Hekaton tables can be compiled into machine code for further performance improvements. The engine is designed for high con-currency. To achieve this it uses only latch-free data structures and a new optimistic, multiversion concurrency control technique. This paper gives an overview of the design of the Hekaton engine and reports some experimental results.
504 citations