Home // International Journal On Advances in Software, volume 6, numbers 3 and 4, 2013 // View article
Multi-Version Databases on Flash: Append Storage and Access Paths
Authors:
Robert Gottstein
Ilia Petrov
Alejandro Buchmann
Keywords: Multi Version Concurrency Control, Snapshot Isolation, Versioning, Append Storage, Flash, Data Placement, Index
Abstract:
New storage technologies, such as Flash and Non-Volatile Memories, with fundamentally different properties are appearing. Leveraging their performance and endurance requires a redesign of existing architecture and algorithms in modern high performance databases. Multi-Version Concurrency Control (MVCC) approaches in database systems, maintain multiple timestamped versions of a tuple. Once a transaction reads a tuple the database system tracks and returns the respective version eliminating lock-requests. Hence, under MVCC reads are never blocked, which leverages well the excellent read performance (high throughput, low latency) of new storage technologies. The read performance is also utilised by the read-intensive visibility and validity rules (MVCC, Snapshot Isolation) that filter the latest committed version of a tuple that a transaction can see out of the set of all tuple versions. Much more critical is the update behaviour of MVCC and Snapshot Isolation (SI) approaches, even though conceptually new versions are separate physical entities, which can be stored out-of-place thus avoiding in-place updates. Upon tuple updates, established implementations lead to multiple random writes - caused by (i) creation of the new and (ii) in-place invalidation of the old version - thus generating suboptimal access patterns for the new storage media. The combination of an append based storage manager operating with tuple granularity and snapshot isolation addresses asymmetry and in-place updates. In this paper, we highlight novel aspects of log-based storage, in multi-version database systems on new storage media. We claim that multi-versioning and append-based storage can be used to effectively address asymmetry and endurance. We identify multi-versioning as the approach to address data-placement in complex memory hierarchies. We focus on: version handling, (physical) version placement, compression} and collocation of tuple versions on Flash storage and in complex memory hierarchies. We identify possible read- and cache-related optimizations.
Pages: 321 to 328
Copyright: Copyright (c) to authors, 2013. Used with permission.
Publication date: December 31, 2013
Published in: journal
ISSN: 1942-2628