Design and implementation of an I/O isolation scheme for key-value store on multiple solid-state drives

  • PDF / 691,894 Bytes
  • 13 Pages / 595.276 x 790.866 pts Page_size
  • 1 Downloads / 144 Views

DOWNLOAD

REPORT


(0123456789().,-volV)(0123456789(). ,- volV)

Design and implementation of an I/O isolation scheme for key-value store on multiple solid-state drives Hwajung Kim1 • Heon Young Yeom1 • Yongseok Son2 Received: 28 November 2019 / Revised: 19 July 2020 / Accepted: 20 July 2020 Ó Springer Science+Business Media, LLC, part of Springer Nature 2020

Abstract High-performance storage devices, such as Non-Volatile Memory express Solid-State Drives (NVMe SSDs), have been widely adopted in data centers. Especially, multiple storage devices provide higher I/O performance compared with a single device. However, the performance can be reduced in the case of workloads with mixed read and write requests (e.g., key-value stores) even though multiple storage devices are adopted. This is because read requests can be blocked until the processing for write requests is finished. In this article, we propose an I/O isolation scheme to improve the performance of the key-value store for multiple SSDs. In our scheme, we classify files of the key-value store and deploy files to the separated storage devices according to the characteristics of each file. Thus, read/write operations are performed in different storage devices. In addition, we propose two different device mapping methods, namely fixed and adaptive device mapping to deploy files to the proper device. We implement our scheme in RocksDB with multiple storage devices (six NVMe SSDs) and extend our scheme on an open-channel SSD, which reveals internal hardware architecture to verify the effectiveness of read/write isolation within a single storage device. The experimental results demonstrate that our scheme improves performance by up to 29% and 26% in the open-channel SSD and multiple storage devices, respectively, compared with the existing scheme.

1 Introduction Modern data centers have widely adopted multiple highperformance storage devices, such as Non-Volatile Memory express Solid-State Drives (NVMe SSDs), to handle large amounts of data efficiently [2–5]. Even though multiple storage devices provide higher I/O performance, such performance cannot be fully utilized in the case of mixed A preliminary version [1] of this article was presented at the 7th International Workshop on Autonomic Management of high performance Grid and Cloud Computing (AMGCC’19), Umea˚, Sweden, Jun. 2019. & Yongseok Son [email protected] Hwajung Kim [email protected]

read and write requests. For example, key-value stores using log-structured merge trees (LSM-trees) [6], such as LevelDB [7], HBase [8], and RocksDB [9] generate mixed read and write operations by performing compaction operations periodically [10]. In such cases, multiple SSDs remain underutilized. The main reason for the performance degradation due to the mixed read and write requests is that the read requests can be blocked after heavy write requests [11, 12]. When a write operation is requested by an application, the SSD controller first caches data into the buffer cache to reduce latency and the amount of write to the flash chips. T