Improving Read Performance of SSDs via Balanced
Redirected Read
Jie Liang
1,3
, Yinlong Xu
1,2
, Dongdong Sun
1
,SiWu
1
1. School of Computer Science and Technology, University of Science and Technology of China
2. Collaborative Innovation Center of High Performance Computing, National University of Defense Technology
3. AnHui Province Key Laboratory of High Performance Computing, Hefei, China
Email: {jieliang, sunddd, wusi}@mail.ustc.edu.cn, ylxu@ustc.edu.cn
Abstract—Modern SSDs have been a competitive alternative
to traditional hard disks because of higher random access
performance, lower power consumption and less noise. Although
SSDs usually have multiple channels with each channel connected
to multiple chips to improve their performance with parallel
channels and chips, some recent studies show that contentions
among I/O requests make SSDs read performance degrade noto-
riously, even worse than random write performance. Meanwhile,
MLC/TLC flash memory technology increases modern SSDs’
capacity while sacrificing their reliability. So fault tolerance, such
as chip-level RAID, is also a necessity for SSDs. We propose a
Balanced Redirected Read (BRR), which redirects some read
requests from busy chips to relatively idle chips by decoding
target data chunks with the data/parity chunks in a parity group.
We also design a new layout of RAID-5 in SSDs, which distributes
adjacent chips to different parity groups such that the degrees
of loads on different chips in a group are more likely different.
So BRR has more chances to redirect read requests from busy
chips to idle chips. Compared with the recently proposed Parallel
Issue Queuing (PIQ) using reordering I/O requests technique,
BRR schedules the requests among chips more balanced. We
implement BRR atop a trace driven simulator, and extensive
experiments with real-world workloads show that BRR reduces
the waiting time of read requests over PIQ (FIFO) by as much
as 38.4% (77.1%) and averagely 14.2% (23.8%), and BRR can
also slightly improve write performance due to the improvement
of read performance.
Keywords-RAID; SSD read latency; I/O contentions; load
balance;
I. INTRODUCTION
Because of higher shock resistance, lower power consump-
tion, and higher random access performance, solid-state drives
(SSDs) have progressively replaced hard-disk drives (HDDs),
and been widely deployed in kinds of personal computers and
large-scale storage servers.
An SSD is usually composed of multiple channels, where
each channel connects to multiple NAND flash chips. Al-
though there is abundant parallelism provided by these multi-
ple chips, SSDs can not fully utilize it. One of the reasons is
that there are lots of contentions for various shared resource
among I/O requests, s uch as link contention, i.e., diff erent
I/O requests competing for I/O bus to transfer data, and
storage contention, i.e., different I/O requests accessing the
same chip at a short interval [6, 11]. Considering the speed
of I/O bus is nearly dozens of times faster than the speed
of chips’ I/O [12], the main contentions can be regarded as
storage contentions up until now. Suffering from contentions,
SSDs random read performance may degrade notoriously, even
worse than random write performance [13].
Meanwhile, MLC/TLC flash memory technology increases
SSDs’ capacity while sacrificing their reliability [3, 7]. Fault
tolerance such as chip-level RAID [21] within SSDs is also a
necessity for enhancing reliability. Chip-level RAID-5 have
been widely studied by recent works [4, 14, 17], due to
its high storage efficiency and fairish reliability. SSDs with
chip-level RAID-5 usually divide all SSD chips into different
parity groups and they can tolerate single chip failure within
each group due to the redundant data called parity. For write
requests of RAID-5, we should write original data chunks, and
at the same time update (or generate parity when the data is
written at the first time) their corresponding parity chunks to
keep data consistency and availability. While for read requests,
we can read the target data chunks directly or by degraded
read, i.e., decode them by reading the data/parity chunks in
the same parity group in case of chip failure. Parity update
and degraded read further increase I/O contention. So how to
alleviate various contentions on SSDs with chip-level RAID-5
becomes a key issue for nowadays.
There are many studies on SSDs I/O schedule which are
proposed either at host s ystem level or SSD controller level to
alleviate contentions. Approaches implemented at host side do
not need to make any hardware modification, and can utilize
resources such as main memory and CPU [6]. While those
deployed at SSD controller level can make full use of the
real physical data allocation [20], to make I/O schedule more
efficient and more accurate [18, 13]. Kim et al. [15] first
propose an I/O scheduler in Linux system for SSDs, which
bundles write requests to boost write performance and delays
issuing them to give favor to read performance. Gao et al. [6]
separate I/O requests according to the contentions in host side
pending queue, and put requests with contentions into different
batches to alleviate contentions. Jung et al. [13] reduce read
contentions by classifying requests into multiple groups based
on the physical SSD resource they shared. They implement
the works in SSD controller by moving the queue in hardware
interface to the beneath of FTL. Li et al. [18] design a device-
level scheduler in SSD controller to mitigate the write-caused
interference by dispatching as many outstanding requests as
possible to a reordering set.
978-1-5090-3315-7/16/$31.00 ©2016 IEEE