scispace - formally typeset
Search or ask a question

Showing papers on "Multiversion concurrency control published in 2020"


Journal ArticleDOI
01 Jan 2020
TL;DR: It is found that implementation choices unrelated to concurrency control may explain much of OCC's previously-reported degradation, and two optimization techniques, commit-time updates and timestamp splitting, that can dramatically improve the high-contention performance of both OCC and MVCC are presented.
Abstract: Optimistic concurrency control, or OCC, can achieve excellent performance on uncontended workloads for main-memory transactional databases. Contention causes OCC's performance to degrade, however, and recent concurrency control designs, such as hybrid OCC/locking systems and variations on multiversion concurrency control (MVCC), have claimed to outperform the best OCC systems. We evaluate several concurrency control designs under varying contention and varying workloads, including TPCC, and find that implementation choices unrelated to concurrency control may explain much of OCC's previously-reported degradation. When these implementation choices are made sensibly, OCC performance does not collapse on high-contention TPC-C. We also present two optimization techniques, commit-time updates and timestamp splitting, that can dramatically improve the high-contention performance of both OCC and MVCC. Though these techniques are known, we apply them in a new context and highlight their potency: when combined, they lead to performance gains of 3.4X for MVCC and 3.6X for OCC in a TPC-C workload.

35 citations


Proceedings ArticleDOI
01 Dec 2020
TL;DR: In this article, the authors provide an overview of several in-memory data management systems that are not HTAP systems, some of them are purely transactional, some are purely analytical, and some support real-time analytics.
Abstract: These days, real-time analytics is one of the most often used notions in the world of databases. Broadly, this term means very fast analytics over very fresh data. Usually the term comes together with other popular terms, hybrid transactional/analytical processing (HTAP) and in-memory data processing. The reason is that the simplest way to provide fresh operational data for analysis is to combine in one system both transactional and analytical processing. The most effective way to provide fast transactional and analytical processing is to store an entire database in memory. So on the one hand, these three terms are related but on the other hand, each of them has its own right to life. In this paper, we provide an overview of several in-memory data management systems that are not HTAP systems. Some of them are purely transactional, some are purely analytical, and some support real-time analytics. Then we overview nine in-memory HTAP DBMSs, some of which don't support real-time analytics. Existing real-time in-memory HTAP DBMSs have very diverse and interesting architectures although they use a number of common approaches: multiversion concurrency control, multicore parallelization, advanced query optimization, just in time compilation, etc. Additionally, we are interested whether these systems use non-volatile memory, and, if yes, in what manner. We conclude that an emergence of new generation of NVM will greatly stimulate its use in in-memory HTAP systems.

4 citations


Patent
21 Feb 2020
TL;DR: In this article, a database multi-version concurrency control system based on fragment-free recovery is presented, which includes transaction information recording module, transaction data management module, data visibility optimization module, a memory optimization acceleration module and a multiversion recovery module.
Abstract: The invention provides a database multi-version concurrency control system based on fragment-free recovery. The database multi-version concurrency control system comprises a transaction information recording module, a transaction data management module, a data visibility optimization module, a memory optimization acceleration module and a multi-version recovery module. According to the system, therollback segment is designed by using the file group or the fixed-length logic segment of the fixed-length file; a set of MVCC implementation mechanism and a rollback segment recycling and cleaning method are provided, and memory access optimization is combined to improve access response time, so that significant system overhead caused by rollback segment recycling is avoided, and fragmentation of a disk is avoided; meanwhile, the configurable rollback section can ensure that the number and the length of concurrent running transactions are not limited under the condition that enough disks exist; in addition, the design of combining the memory and the disk can meet the requirement of avoiding or reducing disk access under most conditions, so that the access performance of the system is ensured.

2 citations


Proceedings ArticleDOI
01 Sep 2020
TL;DR: Observations can see that a commercial DBMS has increased its precision over the years for transactions running at the lower isolation levels than the stricter one due to the introduction of multiversion concurrency control.
Abstract: The report provides observations by re-running a suite of test cases specified to test the implementation of isolation levels by commercial database management systems and compares the results with ones obtained by earlier versions of the same systems. These particular tests focus on database systems that were traditionally known to implement single version concurrency control relying on locking. For the testing, we have used HISTEX. Among interesting observations, we can see that a commercial DBMS has increased its precision over the years for transactions running at the lower isolation levels than the stricter one due to the introduction of multiversion concurrency control. We have also discovered a discrepancy in the behavior of a database system when performing reads in different ways and unless it is addressed by the vendor we believe it needs to be considered seriously by database administrators in order to guarantee consistent behavior of the database system utilization..

1 citations


Patent
28 Jul 2020
TL;DR: In this paper, a multi-version concurrency control method and system based on virtual global clock synchronization is proposed, which comprises the following steps: reading data; calculating and verifying a version timestamp; and writing the value written into a tuple in a set into a tuples storage position in a database, and updating the read timestamp and the write timestamp of the related tuple.
Abstract: The invention discloses a multi-version concurrency control method and system based on virtual global clock synchronization. The method comprises the following steps: reading data; calculating and verifying a version timestamp; and writing the value written into a tuple in a set into a tuple storage position in a database, and updating the read timestamp and the write timestamp of the related tuple. The system comprises: a data reading module used for reading and copying all tuples involved in a current transaction; a timestamp calculation module used for calculating a submission timestamp ofthe current transaction according to the currently designed tuple read timestamp and write timestamp; a timestamp verification module used for verifying whether the timestamp obtained through calculation is valid or not; and a data writing module used for writing the successfully verified timestamp and the modified tuple into the database storage. The method has the following beneficial effects: the access tuples are checked, and the timestamp of each transaction is inertially calculated when the transaction is submitted, so that the limited sorting condition can be avoided.

1 citations


Patent
25 Mar 2020
TL;DR: In this article, the authors describe a method for determining a storage location of a database object of a specific version, wherein indexes for each version of the database object are stored in a trie having a root node corresponding to the specific version.
Abstract: The invention describes a method for determining a storage location of a database object of a specific version, wherein indexes for each version of the database object are stored in a trie having a root node corresponding to the specific version, the method comprising: determining a trie corresponding to the specific version by accessing the root node of the trie corresponding to the specific version; determining an object identifier of the database object by traversing the trie corresponding to the specific version using a secondary key related to the database object as search key; determining the storage location of the database object by traversing the trie corresponding to the specific version using the determined object identifier as search key.

Patent
15 Sep 2020
TL;DR: In this article, the capacity management for a plurality of search trees under multi-version concurrency control is provided for a non-volatile memory with fixed-sized blocks of nonvolatile RAM, each chunk including at least one page.
Abstract: Capacity management is provided for a plurality of search trees under multi-version concurrency control. A non-volatile memory includes a plurality of chunks that are fixed-sized blocks of the non-volatile memory, each chunk including at least one page. The non-volatile memory stores the plurality of search trees, each search tree having elements including a tree root, a tree node and a tree leaf. Each element of the tree is at a different level of the search tree: a first level including the tree root, a second level including the tree node, and a third level including the tree leaf. The plurality of chunks includes a number of chunk types, each chunk type for storing the element from a different level of the search tree, such that elements from different levels are stored in separate chunks.