From in-place updates to in-place appends: revisiting out-of-place updates on Flash
- Under update intensive workloads (TPC, LinkBench) small updates dominate the write behavior, e.g. 70% of all updates change less than 10 bytes across all TPC OLTP workloads. These are typically performed as in-place updates and result in random writes in page-granularity, causing major write-overhead on Flash storage, a write amplification of several hundred times and lower device longevity. In this paper we propose an approach that transforms those small in-place updates into small update deltas that are appended to the original page. We utilize the commonly ignored fact that modern Flash memories (SLC, MLC, 3D NAND) can handle appends to already programmed physical pages by using various low-level techniques such as ISPP to avoid expensive erases and page migrations. Furthermore, we extend the traditional NSM page-layout with a delta-record area that can absorb those small updates. We propose a scheme to control the write behavior as well as the space allocation and sizing of database pages. The proposed approach has been implemented under Shore- MT and evaluated on real Flash hardware (OpenSSD) and a Flash emulator. Compared to In-Page Logging it performs up to 62% less reads and writes and up to 74% less erases on a range of workloads. The experimental evaluation indicates: (i) significant reduction of erase operations resulting in twice the longevity of Flash devices under update-intensive workloads; (ii) 15%-60% lower read/write I/O latencies; (iii) up to 45% higher transactional throughput; (iv) 2x to 3x reduction in overall write amplification.
Author of HS Reutlingen | Petrov, Ilia |
---|---|
DOI: | https://doi.org/10.1145/3035918.3035958 |
ISBN: | 978-1-4503-4197-4 |
Erschienen in: | SIGMOD '17, May 14-19, 2017, Chicago, IL, USA |
Publisher: | ACM |
Place of publication: | New York, NY |
Editor: | Rada Chirkova |
Document Type: | Conference proceeding |
Language: | English |
Publication year: | 2017 |
Page Number: | 16 |
First Page: | 1571 |
Last Page: | 1586 |
DDC classes: | 004 Informatik |
Open access?: | Nein |
Licence (German): | ![]() |