skip to main content
research-article

FlashLight: A Lightweight Flash File System for Embedded Systems

Published:01 June 2012Publication History
Skip Abstract Section

Abstract

A very promising approach for using NAND flash memory as a storage medium is a flash file system. In order to design a higher-performance flash file system, two issues should be considered carefully. One issue is the design of an efficient index structure that contains the locations of both files and data in the flash memory. For large-capacity storage, the index structure must be stored in the flash memory to realize low memory consumption; however, this may degrade the system performance. The other issue is the design of a novel garbage collection (GC) scheme that reclaims obsolete pages. This scheme can induce considerable additional read and write operations while identifying and migrating valid pages. In this article, we present a novel flash file system that has the following features: (i) a lightweight index structure that introduces the hybrid indexing scheme and intra-inode index logging, and (ii) an efficient GC scheme that adopts a dirty list with an on-demand GC approach as well as fine-grained data separation and erase-unit data allocation. We implemented FlashLight in a Linux OS with kernel version 2.6.21 on an embedded device. The experimental results obtained using several benchmark programs confirm that FlashLight improves the performance by up to 27.4% over UBIFS by alleviating index management and GC overheads by up to 33.8%.

References

  1. Agrawal, N., Bolosky, W. J., Douceur, J. R., and Lorch, J. R. 2007. A five-year study of file-system metadata. ACM Trans. Storage 3, 3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Aleph One Ltd. 2003. Yet another flash file system v2 (yaffs2). http://www.yaffs.net.Google ScholarGoogle Scholar
  3. Bityutskiy, A. 2005. JFFS3 design issues. http://www.linux-mtd.infradead.org/.Google ScholarGoogle Scholar
  4. Chang, L.-P., Kuo, T.-W., and Lo, S.-W. 2004. Real-time garbage collection for flash-memory storage systems of real-time embedded systems. ACM Trans. Embed. Comput. Syst. 3, 4, 837--863. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Choi, H.-J., Lim, S. H., and Park, K. H. 2009. Jftl: A flash translation layer based on a journal remapping for flash memory. ACM Trans. Storage 4, 4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Douglis, F., Cáceres, R., Kaashoek, M., Li, K., Marsh, B., and Tauber, J. 1994. Storage alternatives for mobile computers. In Proceedings of the Symposium on Operating Systems Design and Implementation (OSDI’94). 25--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Evans, K. M. and Kuenning, G. H. 2002. A study of irregularities in file-size distributions. In Proceedings of the International Symposium on Performance Evaluation of Computer and Telecommunication Systems (SPECTS’02).Google ScholarGoogle Scholar
  8. FIPS 180-1. 1995. Secure hash standard. U.S. Department of Commerce/N.I.S.T.Google ScholarGoogle Scholar
  9. Gal, E. and Toledo, S. 2005. A transactional flash file system for microcontrollers. In Proceedings of the USENIX Annual Technical Conference. 89--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Hunter, A. 2008. A brief introduction to the design of ubifs. http://www.linux-mtd.infradead.org.Google ScholarGoogle Scholar
  11. Katcher, J. 1997. Postmark: A new file system benchmark. In the TR3022 of Network Appliance.Google ScholarGoogle Scholar
  12. Kim, J., Kim, J., Noh, S., Min, S., and Cho, Y. 2002. A space efficient flash translation layer for compactflash systems. IEEE Trans. Consumer Electron. 48, 2, 366--375. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Kopytov, A. 2004. SysBench: A system performance benchmark. http://sysbench.sourceforge.net/index.html.Google ScholarGoogle Scholar
  14. Lim, S. H. and Park, K. H. 2006. An efficient nand flash file system for flash memory storage. IEEE Trans. Comput. 55, 7, 906--912. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Linux Distributor. 2002. CRAMFS (Compressed ROM file system). http://lxr.linux.no/source/fs/cramfs/README.Google ScholarGoogle Scholar
  16. Litwin, W. 1980. Linear hashing: A new tool for file and table addressing. In Proceedings of 6th International Conference on Very Large Data Bases (VLDB’80). 212--223. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. McDougall, R., Crase, J., and Debnath, S. 2006. FileBench: File system microbenchmarks. http://www.opensolaris.org.Google ScholarGoogle Scholar
  18. Nokia. 2008. N810 Internet tablet. http://www.nokiausa.com/A4626058.Google ScholarGoogle Scholar
  19. Rosenblum, M. and Ousterhout, J. K. 1992. The design and implementation of a log-structured file system. ACM Trans. Computer Systems 10, 1, 26--52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Samsung Electronics. www.samsung.com/global/business/semiconductor/.Google ScholarGoogle Scholar
  21. Sivathanu, M., Bairavasundaram, L. N., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2004. Life or death at block-level. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI’04). 379--394. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Woodhouse, D. 2001. Jffs: The journalling flash file system. In Proceedings of the Ottawa Linux Symposium.Google ScholarGoogle Scholar

Index Terms

  1. FlashLight: A Lightweight Flash File System for Embedded Systems

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in

                  Full Access

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader
                  About Cookies On This Site

                  We use cookies to ensure that we give you the best experience on our website.

                  Learn more

                  Got it!