Fully Automatic Stream Management for Multi-Streamed Ssds Using

Fully Automatic Stream Management for Multi-Streamed Ssds Using

Fully Automatic Stream Management for Multi-Streamed SSDs Using Program Contexts Taejin Kim and Duwon Hong, Seoul National University; Sangwook Shane Hahn, Western Digital; Myoungjun Chun, Seoul National University; Sungjin Lee, DGIST; Jooyoung Hwang and Jongyoul Lee, Samsung Electronics; Jihong Kim, Seoul National University https://www.usenix.org/conference/fast19/presentation/kim-taejin This paper is included in the Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST ’19). February 25–28, 2019 • Boston, MA, USA 978-1-939133-09-0 Open access to the Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST ’19) is sponsored by Fully Automatic Stream Management for Multi-Streamed SSDs Using Program Contexts Taejin Kim, Duwon Hong, Sangwook Shane Hahn†, Myoungjun Chun, Sungjin Lee‡, Jooyoung Hwang∗, Jongyoul Lee∗, and Jihong Kim Seoul National University, †Western Digital, ‡DGIST, ∗Samsung Electronics Abstract mixed with long-lived data in the same block. For more effi- Multi-streamed SSDs can significantly improve both the cient garbage collection, many techniques also exploit host- performance and lifetime of flash-based SSDs when their level I/O access characteristics which can be used as useful streams are properly managed. However, existing stream hints on the efficient data separation inside the SSD [7, 8]. management solutions do not adequately support the multi- Multi-streamed SSDs provide a special interface mecha- streamed SSDs for their wide adoption. No existing stream nism for a host system, called streams1. With the stream in- management technique works in a fully automatic fashion terface, data separation decisions on the host level can be for general I/O workloads. Furthermore, the limited num- delivered to SSDs [9, 10]. When the host system assigns ber of available streams makes it difficult to effectively man- two data D1 and D2 to different streams S1 and S2, respec- age streams when a large number of streams are required. In tively, a multi-streamed SSD places D1 and D2 in differ- this paper, we propose a fully automatic stream management ent blocks, which belong to S1 and S2, respectively. When technique, PCStream, which can work efficiently for general D1 and D2 have distinct update patterns, say, D1 with a I/O workloads with heterogeneous write characteristics. PC- short lifetime and D2 with a long lifetime, allocating D1 Stream is based on the key insight that stream allocation de- and D2 to different streams can be helpful in minimizing cisions should be made on dominant I/O activities. By iden- the copy cost of garbage collection by separating hot data tifying dominant I/O activities using program contexts, PC- from cold data. Since data separation decisions can be made Stream fully automates the whole process of stream alloca- more intelligently on the host level over on the SSD level, tion within the kernel with no manual work. In order to over- when streams are properly managed, they can significantly come the limited number of supported streams, we propose improve both the performance and lifetime of flash-based a new type of streams, internal streams, which can be im- SSDs [10, 11, 12, 13, 14]. We assume that a multi-streamed plemented at low cost. PCStream can effectively double the SSD supports m+1 streams, S0, ..., Sm. number of available streams using internal streams. Our eval- In order to maximize the potential benefit of multi- uations on real multi-streamed SSDs show that PCStream streamed SSDs in practice, several requirements need to be achieves the same efficiency as highly-optimized manual al- satisfied both for stream management and for SSD stream locations by experienced programmers. PCStream improves implementation. First, stream management should be sup- IOPS by up to 56% over the existing automatic technique by ported in a fully automatic fashion over general I/O work- reducing the garbage collection overhead by up to 69%. loads without any manual work. For example, if an applica- tion developer should manage stream allocations manually for a given SSD, multi-streamed SSDs are difficult to be 1 Introduction widely employed in practice. Second, stream management techniques should have no dependency on the number of In flash-based SSDs, garbage collection (GC) is inevitable available streams. If stream allocation decisions have some because NAND flash memory does not support in-place up- dependence on the number of available streams, stream allo- dates. Since the efficiency of garbage collection significantly cation should be modified whenever the number of streams affects both the performance and lifetime of SSDs, garbage in an SSD changes. Third, the number of streams supported collection has been extensively investigated so that the in an SSD should be sufficient to work well with multiple garbage collection overhead can be reduced [1, 2, 3, 4, 5, 6]. concurrent I/O workloads. For example, with 4 streams, it For example, hot-cold separation techniques are commonly used inside an SSD so that quickly invalidated pages are not 1In this paper, we use “streams” and “external streams” interchangeably. USENIX Association 17th USENIX Conference on File and Storage Technologies 295 would be difficult to support a large number of I/O-intensive when a single program context handles multiple types of data concurrent tasks. with different lifetimes, data lifetime distributions of such Unfortunately, to the best of our knowledge, no exist- program contexts have rather large variances. In PCStream, ing solutions for multi-streamed SSDs meet all these re- when such a program context PCj is observed (which was quirements. Most existing techniques [10, 11, 12, 13] re- mapped to a stream Sk), the long-lived data of PCj are moved quire programmers to assign streams at the application level to a different stream Sk0 during GC. The stream Sk0 prevents with manual code modifications. AutoStream [14] is the only the long-lived data of the stream Sk from being mixed with known automatic technique that supports stream manage- future short-lived data of the stream Sk. ment in the kernel level without manual stream allocation. When several program contexts have a large variance in However, since AutoStream predicts data lifetimes using the their data lifetimes, the required number of total streams can update frequency of the logical block address (LBA), it quickly increase to distinguish data with different lifetimes. does not work well with append-only workloads (such as In order to effectively increase the number of streams, we RocksDB [15] or Cassandra [16]) and write-once workloads propose a new stream type, called an internal stream, which (such as a Linux kernel build). Unlike conventional in-place can be used only for garbage collection. Unlike external update workloads where data are written to the same LBAs streams, internal streams can be efficiently implemented at often show strong update locality, append-only or write-once low cost without increasing the SSD resource budget. In the workloads make it impossible to predict data lifetimes from current version of PCStream, we create the same number of LBA characteristics such as the access frequency. internal streams as the external streams, effectively doubling In this paper, we propose a fully-automatic stream man- the number of available streams. agement technique, called PCStream, which works effi- In order to evaluate the effectiveness of PCStream, we ciently over general I/O workloads including append-only, have implemented PCStream in the Linux kernel (ver. 4.5) write-once as well as in-place update workloads. The key and extended a Samsung PM963 SSD to support internal insight behind PCStream is that stream allocation decisions streams. Our experimental results show that PCStream can should be made at a higher abstraction level where I/O ac- reduce the GC overhead as much as a manual stream man- tivities, not LBAs, can be meaningfully distinguished. For agement technique while requiring no code modification. example, in RocksDB, if we can tell whether the current I/O Over AutoStream, PCStream improves the average IOPS by is a part of logging activity or a compaction activity, stream 28% while reducing the average write amplification factor allocation decisions can be made a lot more efficiently over (WAF) by 49%. when only LBAs of the current I/O is available. The rest of this paper is organized as follows. In Section In PCStream, we employ a write program context2 as such 2, we review existing stream management techniques. Before a higher-level classification unit for representing I/O activity describing PCStream, its two core components are presented regardless of the type of I/O workloads. A program context in Sections 3 and 4. Section 5 describes PCStream in detail. (PC) [17, 18], which uniquely represents an execution path Experimental results follow in Section 6, and related work is of a program up to a write system call, is known to be ef- summarized in Section 7. Finally, we conclude with a sum- fective in representing dominant I/O activities [19]. Further- mary and future work in Section 8. more, most dominant I/O activities tend to show distinct data lifetime characteristics. By identifying dominant I/O activi- 2 Limitations of Current Practice in Multi- ties using program contexts during run time, PCStream can automate the whole process of stream allocation within the Streamed SSDs kernel with no manual work. In order to seamlessly support In this section, we review the key weaknesses of existing various SSDs with different numbers of streams, PCStream stream management techniques as well as stream implemen- groups program contexts with similar data lifetimes depend- tation methods. PCStream was motivated to overcome these ing on the number of supported streams using the k-means weaknesses so that multi-streamed SSDs can be widely em- clustering algorithm [20].

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    15 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us