On-Demand Garbage Collection Algorithm with Prioritized Victim Blocks for SSDs
Abstract
:1. Introduction
2. Background
3. Related Work
Garbage Collection
4. Proposed Garbage Collection Algorithm
4.1. Motivation
4.2. Invalidation Rate-Based GC-Triggering Algorithm
5. Evaluation
5.1. Experimental Setup
Algorithm 1. Prioritize victim blocks. |
Global Variables |
|
Main Procedure |
|
5.2. Trace File Analysis
5.3. Experimental Results
5.4. Comparison with Relevant Work
6. Conclusions
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
References
- Narayanan, D.; Thereska, E.; Donnelly, A.; Elnikety, S.; Rowstron, A. Migrating server storage to SSDs: Analysis of tradeoffs. In Proceedings of the 4th ACM European Conference on Computer Systems, Nuremberg, Germany, 1–3 April 2009; pp. 145–158. [Google Scholar]
- Deng, Y. What is the future of disk drives, death or rebirth? ACM Comput. Surv. (CSUR) 2011, 43, 1–27. [Google Scholar] [CrossRef]
- Micheloni, R.; Marelli, A.; Eshghi, K.; Wong, G. SSD market overview. In Inside Solid State Drives (SSDs); Springer: Berlin/Heidelberg, Germany, 2013; pp. 1–17. [Google Scholar]
- Chung, T.S.; Park, D.J.; Park, S.; Lee, D.H.; Lee, S.W.; Song, H.J. A survey of flash translation layer. J. Syst. Archit. 2009, 55, 332–343. [Google Scholar] [CrossRef]
- Guo, J.; Hu, Y.; Mao, B.; Wu, S. Parallelism and garbage collection aware I/O scheduler with improved SSD performance. In Proceedings of the 2017 IEEE International Parallel and Distributed Processing Symposium (IPDPS), Orlando, FL, USA, 29 May –2 June 2017; pp. 1184–1193. [Google Scholar]
- Bux, W.; Iliadis, I. Performance of greedy garbage collection in flash-based solid-state drives. Perform. Eval. 2010, 67, 1172–1186. [Google Scholar] [CrossRef]
- Google. Google: Taming The Long Latency Tail—When More Machines Equals Worse Results. 2012. Available online: http://highscalability.com/blog/2012/3/12/google-taming-the-long-latency-tail-when-more-machines-equal.html (accessed on 3 March 2023).
- Dean, J.; Barroso, L.A. The tail at scale. Commun. ACM 2013, 56, 74–80. [Google Scholar] [CrossRef]
- Gupta, A.; Pisolkar, R.; Urgaonkar, B.; Sivasubramaniam, A. Leveraging Value Locality in Optimizing NAND Flash-based SSDs. In FAST; USENIX Association: Washington, DC, USA, 2011; pp. 91–103. [Google Scholar]
- Yadgar, G.; Yaakobi, E.; Schuster, A. Write once, get 50% free: Saving {SSD} erase costs using {WOM} codes. In Proceedings of the 13th {USENIX} Conference on File and Storage Technologies ({FAST} 15), Santa Clara, CA, USA, 16–19 February 2015; pp. 257–271. [Google Scholar]
- Yan, S.; Li, H.; Hao, M.; Tong, M.H.; Sundararaman, S.; Chien, A.A.; Gunawi, H.S. Tiny-tail flash: Near-perfect elimination of garbage collection tail latencies in NAND SSDs. ACM Trans. Storage (TOS) 2017, 13, 1–26. [Google Scholar] [CrossRef]
- Lee, J.; Kim, Y.; Shipman, G.M.; Oral, S.; Kim, J. Preemptible I/O scheduling of garbage collection for solid state drives. IEEE Trans. Trans. Comput.-Aided Des. Integr. Circuits Syst. 2013, 32, 247–260. [Google Scholar] [CrossRef]
- Ae, J.; Hong, Y. Efficient Garbage Collection Algorithm for Low Latency SSD. Electronics 2022, 11, 1084. [Google Scholar] [CrossRef]
- Zhang, Q.; Li, X.; Wang, L.; Zhang, T.; Wang, Y.; Shao, Z. Lazy-RTGC: A real-time lazy garbage collection mechanism with jointly optimizing average and worst performance for NAND flash memory storage systems. ACM Trans. Des. Autom. Electron. Syst. (TODAES) 2015, 20, 1–32. [Google Scholar] [CrossRef]
- Chen, T.Y.; Chang, Y.H.; Ho, C.C.; Chen, S.H. Enabling sub-blocks erase management to boost the performance of 3D NAND flash memory. In Proceedings of the 53rd Annual Design Automation Conference, Austin, TX, USA, 5–9 June 2016; pp. 1–6. [Google Scholar]
- Choi, E.S.; Park, S.K. Device considerations for high density and highly reliable 3D NAND flash cell in near future. In Proceedings of the 2012 International Electron Devices Meeting, San Francisco, CA, USA, 10–13 October 2012; pp. 9.4.1–9.4.4. [Google Scholar]
- Yu, F.; Yan, H. An Efficient Hot-Cold Data Separation Garbage Collection Algorithm Based on Logical Interval in NAND Flash-based Consumer Electronics. In IEEE Transactions on Consumer Electronics; IEEE: New York, NY, USA, 2023. [Google Scholar]
- Cheng, W.; Luo, M.; Zeng, L.; Wang, Y.; Brinkmann, A. Lifespan-based garbage collection to improve SSD’s reliability and performance. J. Parallel Distrib. Comput. 2022, 164, 28–39. [Google Scholar] [CrossRef]
- Lee, D.; Jin, Y.; Jang, H.; Lee, B. CATDOG: Cost-Age-Time Data Organized Garbage Collection. In Proceedings of the 2022 IEEE International Conference on Networking, Architecture and Storage (NAS), Philadelphia, PA, USA, 3–4 October 2022; IEEE: New York, NY, USA, 2022; pp. 1–6. [Google Scholar]
- Jung, M.; Choi, W.; Srikantaiah, S.; Yoo, J.; Kandemir, M.T. HIOS: A host interface I/O scheduler for solid state disks. ACM SIGARCH Comput. Archit. News 2014, 42, 289–300. [Google Scholar] [CrossRef]
- Kang, J.U.; Kim, J.S.; Park, C.; Park, H.; Lee, J. A multi-channel architecture for high-performance NAND flash-based storage system. J. Syst. Archit. 2007, 53, 644–658. [Google Scholar] [CrossRef]
- Yu, S.; Chen, P.Y. Emerging memory technologies: Recent trends and prospects. IEEE Solid-State Circuits Mag. 2016, 8, 43–56. [Google Scholar] [CrossRef]
- Shin, J.Y.; Xia, Z.L.; Xu, N.Y.; Gao, R.; Cai, X.F.; Maeng, S.; Hsu, F.H. FTL design exploration in reconfigurable high-performance SSD for server applications. In Proceedings of the 23rd International Conference on Supercomputing, Yorktown Heights, NY, USA, 8–12 June 2009; pp. 338–349. [Google Scholar]
- Kang, J.U.; Hyun, J.; Maeng, H.; Cho, S. The multi-streamed solid-state drive. In Proceedings of the 6th {USENIX} Workshop on Hot Topics in Storage and File Systems (HotStorage 14), Philadelphia, PA, USA, 17–18 June 2014. [Google Scholar]
- Yang, J.; Pandurangan, R.; Choi, C.; Balakrishnan, V. AutoStream: Automatic stream management for multi-streamed SSDs. In Proceedings of the 10th ACM International Systems and Storage Conference, Haifa, Israel, 22–24 May 2017; pp. 1–11. [Google Scholar]
- Rizvi, S.S.; Chung, T.S. Flash SSD vs. HDD: High performance oriented modern embedded and multimedia storage systems. In Proceedings of the 2010 2nd International Conference on Computer Engineering and Technology, Chengdu, China, 16–18 April 2010; Volume 7, pp. V7-297–V7-299. [Google Scholar]
- Rostedt, S. Ftrace Linux kernel tracing. In Proceedings of the Linux Conference Japan, Tokyo, Japan, 31 August–1 September 2010. [Google Scholar]
- Brunelle, A.D. Block I/O Layer Tracing: Blktrace; HP: Gelato-Cupertino, CA, USA, 2006; p. 57. [Google Scholar]
- Li, J.; Xu, X.; Peng, X.; Liao, J. Pattern-based write scheduling and read balance-oriented wear-leveling for solid state drivers. In Proceedings of the 2019 35th Symposium on Mass Storage Systems and Technologies (MSST), Santa Clara, CA, USA, 20–24 May 2019; pp. 126–133. [Google Scholar]
- Agrawal, N.; Prabhakaran, V.; Wobber, T.; Davis, J.D.; Manasse, M.S.; Panigrahy, R. Design tradeoffs for SSD performance. In Proceedings of the USENIX Annual Technical Conference, Boston, MA, USA, 22–27 June 2008; Volume 57. [Google Scholar]
- Micron NAND Flash Memory MT29F16G08ABABA 16Gb Asynchronous/Synchronous NAND Features Datasheet. Available online: https://www.micron.com/products/nand-flash/slc-nand/part-catalog/mt29f16g08ababawp-ait (accessed on 15 July 2020).
- Sysbench Manual. Available online: http://imysql.com/wpcontent/uploads/2014/10/sysbench-manual.pdf (accessed on 22 December 2020).
- MySQL 8.0 Reference Manual. Available online: https://dev.mysql.com/doc/refman/8.0/en/ (accessed on 22 December 2020).
- Cooper, B.F.; Silberstein, A.; Tam, E.; Ramakrishnan, R.; Sears, R. Benchmarking cloud serving systems with YCSB. In Proceedings of the 1st ACM Symposium on Cloud Computing (SOCC 10), Indianapolis, IN, USA, 10–11 June 2010. [Google Scholar]
- Apache Cassandra Documentation v4.0-beta4. Available online: https://cassandra.apache.org/doc/latest/ (accessed on 22 December 2020).
- MongoDB Documentation v5.0. Available online: https://docs.mongodb.com/manual/ (accessed on 13 July 2021).
- RocksDB Documentation. Available online: http://rocksdb.org/docs/getting-started.html (accessed on 13 July 2021).
- Phoronix Test Suite v10.0.0 User Manual. Available online: https://www.phoronix-test-suite.com/documentation/phoronix-test-suite.pdf (accessed on 22 December 2020).
- Chun, Y.; Han, K.; Hong, Y. High-performance multi-stream management for SSDs. Electronics 2021, 10, 486. [Google Scholar] [CrossRef]
Ratio of Victim Blocks (%) | Cassandra | MongoDB | MySQL | RocksDB | Dbench | SQLite |
---|---|---|---|---|---|---|
70% invalid blocks | 59.827 | 80.908 | 92.859 | 68.494 | 88.577 | 92.712 |
90% invalid blocks | 51.855 | 74.036 | 84.326 | 68.396 | 76.184 | 42.322 |
90%/70% | 86.676 | 91.506 | 90.811 | 99.857 | 86.012 | 45.648 |
Parameter | Value |
---|---|
Number of channels | 4 |
Planes per channel | 4 |
Blocks per plane | 512 |
Pages per block | 128 |
Page size (KB) | 4 |
Page read latency (μs) | 25 |
Page write latency (μs) | 230 |
Erase latency (ms) | 0.7 |
Workloads | Cassandra | MongoDB | MySQL | RocksDB | Dbench | SQLite |
---|---|---|---|---|---|---|
Read ratio (%) | 80.2 | 36.9 | 0.0 | 50.5 | 0.0 | 0.0 |
Write ratio (%) | 19.8 | 63.1 | 100.0 | 49.5 | 100.0 | 100.0 |
Seq. request (%) | 56.8 | 18.7 | 9.8 | 9.9 | 13.2 | 18.7 |
Rand. request (%) | 43.2 | 81.3 | 90.2 | 90.1 | 86.8 | 81.3 |
Aver. read size (KB) | 70.5 | 6.4 | 0.0 | 4.9 | 4.0 | 4.0 |
Aver. write size (KB) | 103.7 | 4.7 | 5.8 | 4.5 | 7.6 | 4.9 |
Avg. read latency (ms) | Cassandra | MongoDB | MySQL | RocksDB | Dbench | SQLite |
PBGC | 531.064 | 28.149 | - | 0.122 | - | - |
BBGC | 1.382 | 20.364 | - | 0.122 | - | - |
Proposed | 0.615 | 0.119 | - | 0.123 | - | - |
Avg. write latency (ms) | Cassandra | MongoDB | MySQL | RocksDB | Dbench | SQLite |
PBGC | 65.509 | 13.033 | 19.699 | 2.922 | 58.035 | 142.699 |
BBGC | 51.303 | 13.614 | 17.435 | 2.913 | 57.111 | 140.553 |
Proposed | 56.050 | 0.531 | 1.195 | 1.683 | 37.143 | 0.614 |
Proposed/BBGC Improvement ratio (%) | Cassandra | MongoDB | MySQL | RocksDB | Dbench | SQLite |
Avg. read latency | 55.499 | 99.416 | - | −0.820 | - | - |
Avg. write latency | −9.253 | 96.100 | 93.146 | 42.225 | 34.963 | 99.563 |
Max. read latency (ms) | Cassandra | MongoDB | MySQL | RocksDB | Dbench | SQLite |
PBGC | 5123.887 | 5726.358 | - | 38.044 | - | - |
BBGC | 486.446 | 5350.930 | - | 38.155 | - | - |
Proposed | 4.192 | 36.029 | - | 39.340 | - | - |
Max. write latency (ms) | Cassandra | MongoDB | MySQL | RocksDB | Dbench | SQLite |
PBGC | 2317.631 | 5933.481 | 8972.502 | 689.303 | 7054.371 | 21,329.661 |
BBGC | 2317.248 | 6215.630 | 7881.995 | 697.057 | 7001.079 | 21,109.462 |
Proposed | 2757.480 | 36.519 | 50.490 | 99.357 | 1694.329 | 34.678 |
Proposed/BBGC Improvement ratio (%) | Cassandra | MongoDB | MySQL | RocksDB | Dbench | SQLite |
Max. read latency | 99.138 | 99.327 | - | −3.106 | - | - |
Max. write latency | −18.998 | 99.412 | 99.359 | 85.746 | 75.799 | 99.836 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Lee, H.; Choi, W.; Hong, Y. On-Demand Garbage Collection Algorithm with Prioritized Victim Blocks for SSDs. Electronics 2023, 12, 2142. https://doi.org/10.3390/electronics12092142
Lee H, Choi W, Hong Y. On-Demand Garbage Collection Algorithm with Prioritized Victim Blocks for SSDs. Electronics. 2023; 12(9):2142. https://doi.org/10.3390/electronics12092142
Chicago/Turabian StyleLee, Hyeyun, Wooseok Choi, and Youpyo Hong. 2023. "On-Demand Garbage Collection Algorithm with Prioritized Victim Blocks for SSDs" Electronics 12, no. 9: 2142. https://doi.org/10.3390/electronics12092142