Since in-place updates for pages are not allowed in flash memory, all new page writes should be written in an out-of-place manner. The old overwritten pages are invalidated. Such invalidated pages eventually trigger the costly garbage collection process. Since the garbage collection causes numerous read and write operations, it is one of the flash memory's major performance issues. In 2R, it modified the garbage collection algorithm, which applies the I/O characteristics of the On-Line Transaction Process workload to improve the Write Amplification Factor. However, this algorithm has a region pollution problem. Therefore, in this paper, we developed 2R++ that additionally separates pages with long access intervals to solve the region pollution problem. 2R++ introduces an extra bit per block to separate warm pages based on a second chance mechanism. Prevents warm pages from being misidentified as cold pages to solve region pollution problem. We conducted the experiments on TPC-C and Linkbench to make the performance comparison. The experiment showed that 2R++ achieved a Write Amplification Factor improvement of 57.8% and 13.8% compared to 2R, respectively.
플래시 메모리는 in-place 수정이 불가능한 특성을 가지기 때문에 out-of-place 방식으로 쓰기 작업을 수행한다. 덮어쓰기가 발생한 오래된 페이지는 유효하지 않은 페이지로 전환된다. 유효하지 않은 페이지들은 높은 오버헤드를 가진 가비지 컬렉션 과정을 유발한다. 가비지 컬렉션은 많은 읽기, 쓰기 작업을 유발하기 때문에 플래시 메모리의 주요 성능 이슈 중 하나이다. 2R에서는 OLTP(On-Line Transaction Process) 워크로드의 I/O 특성을 가비지 컬렉션 알고리즘에 적용하여 WAF(Write Amplification Factor)를 개선하였다. 본 논문에서는 접근 간격이 긴 페이지들을 추가로 분리하는 2R++를 통해 2R에서 발생하는 지역 오염 문제를 해결했다. 2R++는 블록 당 추가 bit를 도입해 second chance mechanism 기반으로 warm 페이지를 분리해서 warm 페이지가 cold 페이지로 오인 식별되는 것을 방지한다. TPC-C와 Linkbench에 대해 알고리즘 별 성능 비교 실험을 진행하였고, 그 결과 2R++의 WAF는 2R대비 각각 57.8%, 13.8%의 개선을 이루어냈음을 확인했다.
이 성과는 정부(과학기술정보통신부)의 재원으로 한국연구재단의 지원을 받아 수행된 연구임(No. 2022R1A2C2008225). 이 논문은 2022년도 정부(과학기술정보통신부)의 재원으로 정보통신기획 평가원의 지원을 받아 수행된 연구임(No.2015-0-00314,비휘발성 메모리기반 개방형 고성능 DBMS 개발)
References
M. Kang, S. Choi, G. Oh, and S. W. Lee, "2R: Efficiently isolating cold pages in flash storages," Proceedings of the VLDB Endowment, Vol.13, No.12, pp.2004-2017, 2020.
S. T. Leutenegger and D. Dias, "A modeling study of the TPC-C benchmark," ACM Sigmod Record, Vol.22, No.2, pp.22-31, 1993.https://doi.org/10.1145/170036.170042
A. Jaleel, K. B. Theobald, S. C. Steely Jr, and J. Emer, "High performance cache replacement using re-reference interval prediction (RRIP)," ACM SIGARCH Computer Architecture News, Vol.38, No.3, pp.60-71, 2010.
H. Li, M. Hao, M. H. Tong, S. Sundararaman, M. Bjorling, and H. S. Gunawi, "The {CASE} of {FEMU}: Cheap, accurate, scalable and extensible flash emulator," In 16th USENIX Conference on File and Storage Technologies (FAST 18) (pp. 83-90), 2018.
Li Huaicheng. FEMU: Accurate, Scalable and Extensible NVMe SSD Emulator (FAST'18) [Internet], https://github. com/vtess/FEMU, 2018.
J. Axboe. FIO (Flexible IO Tester). [Internet], http://git.ker nel.dk/?p=fio.git;a=summary, 2006.
T. G. Armstrong. Facebook Graph Benchmark. [Internet], https://github.com/facebookarchive/linkbench, 2013.
T. G. Armstrong, V. Ponnekanti, D. Borthakur, and M. "Callaghan, Linkbench: A database benchmark based on the facebook social graph," In Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data, pp.1185-1196, 2013.
W. Xie, Y. Chen, and P. C. Roth, "ASA-FTL: An adaptive separation aware flash translation layer for solid state drives," Parallel Computing, Vol.61, pp.3-17, 2017https://doi.org/10.1016/j.parco.2016.10.006