{'fraction_non_alphanumeric': 0.020937188434695914, 'fraction_numerical': 0.0009970089730807576, 'mean_word_length': 5.121951219512195, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Performance Model of Multi-Version Concurrency Control

In this article we present a performance model for multi-version concurrency control (MVCC). This type of concurrency control is currently very popular among mainstream commercial and open source database systems thanks to its ability to well cope with read intensive workloads, as in the case of transaction profiles proper of Web applications. To build the model we had to tackle the intrinsic higher complexity of MVCC when compared to traditional concurrency control mechanisms (i.e. 2-phase-locking and optimistic ones), such as the joint use of locks and aborts to resolve direct conflicts among write accesses to the same data item, and the management of multiple data versions. We validate our analytical model via an extensive simulation study, considering both uniform and skewed data accesses, as well as differentiated transaction profiles. To the best of our knowledge, the present study provides the first analytical model of MVCC.