Adaptive in-page logging for flash-memory storage systems
Ke LU, Peiquan JIN, Puyuan YANG, Shouhong WAN, Lihua YUE
Adaptive in-page logging for flash-memory storage systems
Flash memory is widely used in embedded devices and enterprise storage systems. Currently, flash-based storage devices usually use a flash translation layer (FTL) to cope with the special features of flash memory. Many methods for the design and implementation of the FTL have been proposed, such as BAST (block-associative sector translation), FAST (fully associative sector translation), and IPL (in-page logging), of which IPL has been demonstrated to have the best performance. However, IPL offers little consideration to reducing merge operations that consequently result in the degradation of the overall performance of flash-memory storage systems. We propose an improvement to IPL, called adaptive IPL (AIPL). The idea of adaptive IPL is to make the log region in a block resizable, therefore a hot block (i.e., a write-intensive block) will use a large log region so as to absorb more page updates and in turn reduce the merge operations, while a cold block, i.e., a block rarely written to, will use a small log region. This is realized by first detecting the update pattern of a block and then presenting an update-pattern-based algorithm to dynamically adjust the log region size of a newly allocated block. We conduct experiments on TPC-C traces and synthetic traces and compare the performance of AIPL with other competitors in terms of merge count, write count and elapsed time. The results demonstrate that compared with IPL, AIPL can reduce merge operations by 65% and write operations by 54% on average.
flash memory / adaptive algorithm / IPL / update pattern
[1] |
LeVenthaL A. Flash storage memory. Communications of the ACM, 2008, 51(7): 47−51
CrossRef
Google scholar
|
[2] |
Liu Z, Yue L, Wei P, Jin P, Xiang X. An adaptive block-set based management for large-scale flash memory. In: Proceedings of the 2009 ACM Symposium on Applied Computing. 2009, 1621−1625
CrossRef
Google scholar
|
[3] |
Lee S W, Moon B. Design of flash-based DBMS: an in-page logging approach. In: Proceedings of the 2007 ACM SIGMOD International Conference on Management of Data. 2007, 55−66
CrossRef
Google scholar
|
[4] |
Jin P, Ou Y, Härder T, Li Z. AD-LRU: an efficient buffer replacement algorithm for flash-based databases. Data & Knowledge Engineering, 2012, 72: 83−102
CrossRef
Google scholar
|
[5] |
Cho T, Lee Y T, Kim E C, Lee J W, Choi S, Lee S, Kim D H, Han W G, Lim Y H, Lee J D. A dual-mode nand flash memory: 1-GB multilevel and high-performance 512-MB single-level modes. IEEE Journal of Solid-State Circuits, 2001, 36(11): 1700−1706
CrossRef
Google scholar
|
[6] |
Understanding the flash translation layer (FTL) specification. Wishful Research Result AP-684, Intel Corporation, 1998
|
[7] |
Seo D, Shin D. Recently-evicted-first buffer replacement policy for flash storage devices. IEEE Transactions on Consumer Electronics, 2008, 54(3): 1228−1235
CrossRef
Google scholar
|
[8] |
Shaw S, Dyke J. Pro Oracle Database 10g RAC on Linux: Installation, Administration, and Performance. Apress, 2006
|
[9] |
Li Z, Jin P, Su X, Cui K, Yue L. CCF-LRU: a new buffer replacement algorithm for flash memory. IEEE Transactions on Consumer Electronics, 2009, 55(3): 1351−1359
CrossRef
Google scholar
|
[10] |
Bjorling M, Bonnet P, Bouganim L, Jónsson B P. MFLIP: Understanding the energy consumption of flash devices. IEEE Data Engineering Bulletin, 2010, 33(4): 48−54
|
[11] |
Gupta A, Kim Y, Urgaonkar B. DFTL: A flash translation layer employing demand-based selective caching of page-level address mappings. In: Proceedings of the 2009 International Conference on Architectural Support for Programming Languages and Operating System. 2009, 229−240
|
[12] |
Hudlet V, Schall D. SSD!= SSD-an empirical study to identify common properties and type-specific behavior. In: Proceedings of the 14th Conference on GI-Conference on Database Systems for Business, Technology, and Web. 2011, 430−441
|
[13] |
Zhao H, Jin P, Yang P, Yue L. BPCLC: an efficient write buffer management scheme for flash-based solid state disks. International Journal of Digital Contents and its Applications, 2010, 4(6): 123−133
|
[14] |
Xu Z, Li R, Xu C Z. Cast: A page-level ftl with compact address mapping and parallel data blocks. In: Proceedings of the 31st IEEE International Performance Computing and Communications Conference. 2012, 142−151
|
[15] |
Ma D, Feng J, Li G. LazyFTL: a page-level flash translation layer optimized for nand flash memory. In: Proceedings of the 2011 ACM SIG-MOD International Conference on Management of Data. 2011, 1−12
|
[16] |
Kim J, Kim J M, Noh S H, Min S L, Cho Y. A space-efficient flash translation layer for compactflash systems. IEEE Transactions on Consumer Electronics, 2002, 48(2): 366−375
CrossRef
Google scholar
|
[17] |
Boukhobza J, Olivier P, Rubini S. Cach-ftl: A cache-aware configurable hybrid flash translation layer. In: Proceedings of the 21st Euromicro International Conference on Parallel, Distributed and Network-Based Processing. 2013, 94−101
|
[18] |
Shin I. HA-SBAST: History-based flash translation layer for NAND flash memory. In: Proceedings of the 6th International Conference on Convergence and Hybrid Information Technology. 2012, 744−751
CrossRef
Google scholar
|
[19] |
Lee S W, Park D J, Chung T S, Lee D H, Park S, Song H J. A log buffer-based flash translation layer using fully-associative sector translation. ACM Transactions on Embedded Computing Systems, 2007, 6(3): 55−66
CrossRef
Google scholar
|
[20] |
Na G J, Lee S W, Moon B. Dynamic in-page logging for flash-aware b-tree index. In: Proceedings of the 18th ACM Conference on Information and Knowledge Management. 2009, 1485−1488
|
[21] |
Jin P, Su X, Li Z, Yue L. A flexible simulation environment for flashaware algorithms. In: Proceedings of the 18th ACM Conference on Information and Knowledge Management. 2009, 2093−2094
|
[22] |
Samsung Electronics, K9XXG08UXA Datasheet. 2012
|
[23] |
Ou Y, Härder T, Jin P. CFDC: a flash-aware buffer management algorithm for database systems. Lecture Notes in Computer Science, 2011, 6295 : 435−449
|
/
〈 | 〉 |