DOI QR코드

DOI QR Code

Partial Garbage Collection Technique for Improving Write Performance of Log-Structured File Systems

부분 가비지 컬렉션을 이용한 로그 구조 파일시스템의 쓰기 성능 개선

  • 곽현호 (성균관대학교 전자전기컴퓨터공학과) ;
  • 신동군 (성균관대학교 컴퓨터공학과)
  • Received : 2014.08.22
  • Accepted : 2014.09.25
  • Published : 2014.12.15

Abstract

Recently, flash storages devices have become popular. Log-structured file systems (LFS) are suitable for flash storages since these can provide high write performance by only generating sequential writes to the flash device. However, LFS should perform garbage collections (GC) in order to reclaim obsolete space. Recently, a slack space recycling (SSR) technique was proposed to reduce the GC overhead. However, since SSR generates random writes, write performance can be negatively impacted if the random write performance is significantly lower than sequential write performance of the target device. This paper proposes a partial garbage collection technique that copies only a part of valid blocks in a victim segment in order to increase the size of the contiguous invalid space to be used by SSR. The experiments performed in this study show that the write performance in an SD card improves significantly as a result of the partial GC technique.

최근 플래시 저장장치의 사용이 대중화되면서 플래시 저장장치의 특성에 맞는 로그 구조 파일시스템에 대한 관심도 높아지고 있다. 로그 구조 파일시스템은 사용자의 임의 쓰기를 파일시스템에서 순차 쓰기로 바꾸어 처리한다. 이 순차 쓰기를 유지하기 위해 파일시스템에서 가비지 컬렉션(Garbage Collection)을 해 주어야 하는데, 이때 오버헤드로 인해 쓰기 성능이 감소하는 것을 막기 위한 기법으로 SSR (Slack Space Recycling)이 제시되었다. 그런데, SSR은 임의 쓰기를 발생시키기 때문에, 임의 쓰기 성능이 낮은 저가형 저장장치에서 쓰기 성능을 감소시키는 문제가 있다. 본 논문에서 제시하는 부분 가비지 컬렉션은 SSR방식으로 데이터를 기록하기 전에 유효한 블록들을 일부만 복사하여 옮김으로써 무효화 된 공간의 크기를 늘려 임의 쓰기 수를 줄여서 쓰기 성능을 증가시키는 기법으로, SD 카드에서 쓰기 성능을 최대 두 배 이상 증가시켰다.

Keywords

Acknowledgement

Grant : 스마트TV 2.0 소프트웨어 플랫폼

Supported by : 정보통신기술연구진흥센터

References

  1. M. Rosenblum and J. Ousterhout, "The design and implementation of a log-structured file system," ACM Transactions on Computer Systems, Vol. 10, pp. 26-52, 1992. https://doi.org/10.1145/146941.146943
  2. Aleph One. (2002). "YAFFS2: Yet Another Flash File System" [Online]. Available: http://www.yaffs.net/(downloaded 2014, Jun. 30)
  3. D. Woodhouse. (2001). "JFFS2: The journaling flash file system, version 2" [Online]. Available: http://sources.redhat.com/jffs2/ (downloaded 2014, Jun. 30)
  4. T. Gleixner, et al. (2006). "UBIFS: Unsorted block images file system" [Online]. Available: http://www. linuxmtd.infradead.org/ (downloaded 2014, Jun. 30)
  5. J. Kang, et al., "A multi-channel architecture for high-performance NAND flash-based storage system," Journal of Systems Architecture, Vol. 53, pp. 644-658, 2007. https://doi.org/10.1016/j.sysarc.2007.01.010
  6. Y. Oh, et al., "Optimizations of LFS with slack space recycling and lazy indirect block update," ACM Proceedings of the 3rd Annual Haifa Experimental Systems Conference, pp. 2, 2010.
  7. J. Kim. (2012). "F2FS: introduce flash-friendly file system" [Online]. Available: http://lwn.net/Articles/518988 (downloaded 2014, Jun. 30)
  8. M. Wu, W. Zwaenepoel, "eNVy: A non-volatile, main memory storage system," ACM SigPlan Notices, Vol. 29, pp. 86-97, 1994. https://doi.org/10.1145/195470.195506
  9. K. Atsuo, et al., "A flash-memory based file system," USENIX Annual Technical Conference, pp. 155-164, 1995.
  10. W. Jun, H. Yiming, "WOLF-A novel reordering write buffer to boost the performance of log-structured file systems," USENIX Conference on File and Storage Technologies (FAST), pp. 47-60, 2002.
  11. C. Min, et al., "SFS: Random write considered harmful in solid state drives," USENIX Conference on File and Storage Technologies (FAST), pp. 12, 2012.
  12. W. John, et al., "The HP AutoRAID hierarchical storage system," ACM Transactions on Computer Systems, Vol. 14, pp. 108-136, 1996. https://doi.org/10.1145/225535.225539
  13. M. Kuoppala. (2004). "Tiobench-Threaded I/O bench for linux" [Online]. Available: http://directory.fsf.org/tiobench.html (downloaded 2014, Jun. 30)