Efficient and flexible methods for transient versioning of records to avoid locking by read-only transactions (original) (raw)

Logical and physical versioning in main memory databases

1997

We present a design for multi-version concurrency control and recovery in a main memory database, and describe logical and physical versioning schemes that allow read-only transactions to execute without obtaining data item locks or system latches. These schemes enable a system to guarantee that updaters will never interfere with read-only transactions, and that read-only transactions will not be delayed as long as the operating system provides them with sufficient cycles. Our contributions include several space saving techniques for the main memory implementation. We extend the T-tree index structure (designed for main-memory databases) to support concurrent access and latch-free traversals, and demonstrate the performance benefits of our extensions. Some of these schemes have been implemented on a widely-used software platform within Bell Labs., and the full scheme is implemented in the Dali main memory storage manager.

Multi-version concurrency control scheme for a database system

Journal of Computer and System Sciences, 1984

A concurrency control scheme using multiple versions of data objects is presented which allows increased concurrency. The scheme grants an appropriate version to each read request. Transactions issuing write requests which might destroy database integrity are aborted. It is precisely stated when old versions can be discarded and how to eliminate the effects of aborted transactions is described in detail. The scheduler outputs only (multi-version) wwserializable histories which preserve database consistency. It is shown that any "D

Everything is a Transaction: Unifying Logical Concurrency Control and Physical Data Structure Maintenance in Database Management Systems

2021

Almost every database management system (DBMS) supporting transactions created in the last decade implements multi-version concurrency control (MVCC). But these systems rely on physical data structures (e.g., B+trees, hash tables) that do not natively support multi-versioning. As a result, there is a disconnect between the logical semantics of transactions and the DBMS’s underlying implementation. System developers must invest in engineering efforts to coordinate transactional access to these data structures and nontransactional maintenance tasks. This burden leads to challenges when reasoning about the system’s correctness and performance and inhibits its modularity. In this paper, we propose the Deferred Action Framework (DAF), a new system architecture for scheduling maintenance tasks in an MVCC DBMS integrated with the system’s transactional semantics. DAF allows the system to register arbitrary actions and then defer their processing until they are deemed safe by transactional ...

High-performance concurrency control mechanisms for main-memory databases

Proceedings of the VLDB Endowment, 2011

A database system optimized for in-memory storage can support much higher transaction rates than current systems. However, standard concurrency control methods used today do not scale to the high transaction rates achievable by such systems. In this paper we introduce two efficient concurrency control methods specifically designed for main-memory databases. Both use multiversioning to isolate read-only transactions from updates but differ in how atomicity is ensured: one is optimistic and one is pessimistic. To avoid expensive context switching, transactions never block during normal processing but they may have to wait before commit to ensure correct serialization ordering. We also implemented a main-memory optimized version of single-version locking. Experimental results show that while single-version locking works well when transactions are short and contention is low performance degrades under more demanding conditions. The multiversion schemes have higher overhead but are much ...

Adaptive Versioning in Transactional Memory Systems

Algorithms, 2021

Transactional memory has been receiving much attention from both academia and industry. In transactional memory, program code is split into transactions, blocks of code that appear to execute atomically. Transactions are executed speculatively and the speculative execution is supported through data versioning mechanism. Lazy versioning makes aborts fast but penalizes commits, whereas eager versioning makes commits fast but penalizes aborts. However, whether to use eager or lazy versioning to execute those transactions is still a hotly debated topic. Lazy versioning seems appropriate for write-dominated workloads and transactions in high contention scenarios whereas eager versioning seems appropriate for read-dominated workloads and transactions in low contention scenarios. This necessitates a priori knowledge on the workload and contention scenario to select an appropriate versioning method to achieve better performance. In this article, we present an adaptive versioning approach, c...

An Efficient Multiversion Access STructure

IEEE Transactions on Knowledge and Data Engineering, 1997

An efficient multiversion access structure for a transaction-time database is presented. Our method requires optimal storage and query times for several important queries and logarithmic update times. Three version operations}inserts, updates, and deletes}are allowed on the current database, while queries are allowed on any version, present or past. The following query operations are performed in optimal query time: key range search, key history search, and time range view. The key-range query retrieves all records having keys in a specified key range at a specified time; the key history query retrieves all records with a given key in a specified time range; and the time range view query retrieves all records that were current during a specified time interval. Special cases of these queries include the key search query, which retrieves a particular version of a record, and the snapshot query which reconstructs the database at some past time. To the best of our knowledge no previous multiversion access structure simultaneously supports all these query and version operations within these time and space bounds. The bounds on query operations are worst case per operation, while those for storage space and version operations are (worst-case) amortized over a sequence of version operations. Simulation results show that good storage utilization and query performance is obtained.

Exploiting Concurrency in a DBMS Implementation for Production Systems

Proceedings [1988] International Symposium on Databases in Parallel and Distributed Systems, 1988

The LOTUS Corporation has made a generous donation to partially offset the cost of printing and distributing four issues of the Data Engineering bulletin. Database Engineering Bulletin is a quarterly publication of the IEEE Computer Society Technical Committee on Database Engineering. its scope of interest includes: data structures and models, access strategies, access control techniques, database architecture, database machines, intelligent front ends, mass storage for very large databases, distributed database systems and techniques, database software design and implementation, database utilities, database security and related areas. Contribution to the Bulletin Is hereby solicited. News items, letters, technical papers, book reviews, meeting previews, summaries, case studies, etc., should be sent to the Editor. All letters to the Editor will be considered for publication unless accompanied by a request to the contrary. Technical papers are unrefereed. Opinions expressed In contributions are those of the mdi vidual author rather than the official position of the TC on Database Engineering, the IEEE Computer Society, or orga nizations with which the author may be affiliated. Membership In the Database Engineering Technical Com mittee Is open to individuals who demonstrate willingness to actively participate in the various activities of the TC. A member of the IEEE Computer Society may Join the TC as a full member. A non-member of the Computer Society may Join as a participating member, with approval from at least one officer of the TC. Both full members and participating members of the TC are entitled to receive the quarterly bulletin of the TC free of charge, until further notIce. From the Issue Editors Sushil Jajodia and Won Kim On December 5-7, 1988, an IEEE-sponsored symposium named the International Symposium on Da tabases for Parallel and Distributed Systems was held in Austin, Texas. The symposium was an attempt to encourage interested professionals to focus their research on extending the technology developed thus far for homogeneous distributed databases into two major related directions: databases for paral lel machines and heterogeneous distributed databases. We selected seven papers from the symposium, and added two new papers to form this special issue on Databases for Parallel and Distributed Systems. The selection of papers in this issue was based on our decision to maximize the breadth of research topics to be introduced to the readers. We regret that we did not have enough space to include a paper on heterogeneous databases. The papers selected from the symposium had to be condensed because of page limits on our bulletin. The inter ested reader may obtain the proceedings of the symposium from IEEE for a broader perspective on this area.

SQL Access Patterns for Optimistic Concurrency Control

2009 Computation World: Future Computing, Service Computation, Cognitive, Adaptive, Content, Patterns, 2009

Transaction processing is of growing importance for mobile and web applications. Booking tickets, flight reservation, e-Banking, e-Payment, and booking holiday arrangements are just a few examples. Due to temporarily disconnected situations the synchronisation and consistent transaction processing are key issues. To avoid difficulties with blocked transactions or communication loss several authors and technology providers have recommended to use Optimistic Concurrency Control (OCC) to solve the problem. However most vendors of Relational Database Management Systems (DBMS) implemented only locking schemes for concurrency control which prohibit the immediate use of OCC. We propose Row Version Verifying (RVV) discipline to avoid lost updates and achieve a kind of OCC for those DBMS not providing an adequate non-blocking concurrency control. Moreover, the different mechanisms are categorized as access pattern in order to provide programmers with a general guideline for SQL databases. The proposed SQL access patterns are relevant for all transactional applications with unreliable communication and low conflicting situations. We demonstrate the proposed solution using mainstream database systems like Oracle, DB2, and SQLServer.

Pessimistic concurrency control and versioning to support database pointers in real-time databases

2004

In this paper we present a concurrency control algorithm that allows co-existence of soft real-time, relational database transactions, and hard real-time database pointer transactions in real-time database management systems. The algorithm uses traditional pessimistic concurrencycontrol (i.e. locking) for soft transactions and versioning for hard transactions to allow them to execute regardless of any database lock. We provide formal proof that the algorithm is deadlock free and formally verify that transactions have atomic semantics. We also present an evaluation that demonstrates significant benefits for both soft and hard transactions when our algorithm is used. The proposed algorithm is suited for resource-constrained safety critical, real-time systems that have a mix of hard real-time control applications and soft real-time management, maintenance, or user-interface applications. * This work is supported by SSF within the SAVE project, SAfety critical components for VEhicular systems.