FD-Buffer: A Cost-Based Adaptive Buffer Replacement Algorithm for FlashMemory Devices

In this paper, we present a design and implementation of FD-Buffer, a cost-based adaptive buffer manager for flash memory devices. Due to flash memory's unique hardware features, it has an inherent read-write asymmetry: writes involve expensive erase operations, which usually makes them much slower than reads. To address this read-write asymmetry, we revisit buffer management and consider the average I/O cost per page access as the main cost metric, as opposed to the traditional miss rate. While there have been a number of buffer management algorithms that take the read-write asymmetry into consideration, most algorithms fail to effectively adapt to the runtime workload or different degrees of asymmetry. In this paper, we develop a new replacement algorithm in which we separate clean and dirty pages into two pools. The size ratio of the two pools is automatically adapted based on the read-write asymmetry and the runtime workload. We evaluate the FD-Buffer with trace-driven experiments on real flash memory devices. Our trace-driven evaluation results show that our algorithm achieves 4.0-33.4 percent improvement of I/O performance on flash memory, compared to state-of-the-art flash-aware replacement policies.

[1]  Xiaofeng Meng,et al.  ACR: An Adaptive Cost-Aware Buffer Replacement Algorithm for Flash Storage Devices , 2010, 2010 Eleventh International Conference on Mobile Data Management.

[2]  Sang-Won Lee,et al.  Design of flash-based DBMS: an in-page logging approach , 2007, SIGMOD '07.

[3]  Sang Lyul Min,et al.  Current trends in flash memory technology , 2006, Asia and South Pacific Conference on Design Automation, 2006..

[4]  Peiquan Jin,et al.  AD-LRU: An efficient buffer replacement algorithm for flash-based databases , 2012, Data Knowl. Eng..

[5]  Jianliang Xu,et al.  FD-buffer: a buffer manager for databases on flash disks , 2010, CIKM.

[6]  Peiquan Jin,et al.  CCF-LRU: a new buffer replacement algorithm for flash memory , 2009, IEEE Transactions on Consumer Electronics.

[7]  Ramesh K. Sitaraman,et al.  Lazy-Adaptive Tree: An Optimized Index Structure for Flash Devices , 2009, Proc. VLDB Endow..

[8]  Chanik Park,et al.  A Re-configurable FTL (Flash Translation Layer) Architecture for NAND Flash based Applications , 2007, 18th IEEE/IFIP International Workshop on Rapid System Prototyping (RSP '07).

[9]  Chin-Hsien Wu,et al.  A self-adjusting flash translation layer for resource-limited embedded systems , 2010, TECS.

[10]  Dennis Shasha,et al.  2Q: A Low Overhead High Performance Buffer Management Replacement Algorithm , 1994, VLDB.

[11]  Xiaodong Zhang,et al.  Understanding intrinsic characteristics and system implications of flash memory based solid state drives , 2009, SIGMETRICS '09.

[12]  Jianliang Xu,et al.  Flag Commit: Supporting Efficient Transaction Recovery in Flash-Based DBMSs , 2012, IEEE Transactions on Knowledge and Data Engineering.

[13]  Hyojun Kim,et al.  BPLRU: A Buffer Management Scheme for Improving Random Writes in Flash Storage , 2008, FAST.

[14]  Philippe Bonnet,et al.  uFLIP: Understanding Flash IO Patterns , 2009, CIDR.

[15]  Jianliang Xu,et al.  Optimizing Nonindexed Join Processing in Flash Storage-Based Systems , 2013, IEEE Transactions on Computers.

[16]  Bingsheng He,et al.  Tree indexing on solid state drives , 2010, Proc. VLDB Endow..

[17]  Rina Panigrahy,et al.  Design Tradeoffs for SSD Performance , 2008, USENIX ATC.

[18]  Bingsheng He,et al.  Tree Indexing on Flash Disks , 2009, 2009 IEEE 25th International Conference on Data Engineering.

[19]  Dongkun Shin,et al.  Recently-evicted-first buffer replacement policy for flash storage devices , 2008, IEEE Transactions on Consumer Electronics.

[20]  Shimin Chen,et al.  FlashLogging: exploiting flash devices for synchronous logging performance , 2009, SIGMOD Conference.

[21]  Jae-Myung Kim,et al.  A case for flash memory ssd in enterprise database applications , 2008, SIGMOD Conference.

[22]  David A. Wood,et al.  Implementing stack simulation for highly-associative memories , 1991, SIGMETRICS '91.

[23]  Il-Yeol Song,et al.  A cost-based buffer replacement algorithm for object-oriented database systems , 2001, Inf. Sci..

[24]  Dharmendra S. Modha,et al.  CAR: Clock with Adaptive Replacement , 2004, FAST.

[25]  Gerhard Weikum,et al.  The LRU-K page replacement algorithm for database disk buffering , 1993, SIGMOD Conference.

[26]  Laszlo A. Belady,et al.  A Study of Replacement Algorithms for Virtual-Storage Computer , 1966, IBM Syst. J..

[27]  Irving L. Traiger,et al.  Evaluation Techniques for Storage Hierarchies , 1970, IBM Syst. J..

[28]  Theo Härder,et al.  Clean first or dirty first?: a cost-aware self-adaptive buffer replacement policy , 2010, IDEAS '10.

[29]  Peiquan Jin,et al.  CFDC: a flash-aware replacement policy for database buffer management , 2009, DaMoN '09.

[30]  Goetz Graefe,et al.  Query processing techniques for solid state drives , 2009, SIGMOD Conference.

[31]  Bingsheng He,et al.  Operation-aware buffer management in flash-based systems , 2011, SIGMOD '11.

[32]  Joonwon Lee,et al.  CFLRU: a replacement algorithm for flash memory , 2006, CASES '06.

[33]  Jin-Soo Kim,et al.  FAB: flash-aware buffer management policy for portable media players , 2006, IEEE Transactions on Consumer Electronics.

[34]  Daniel S. Myers,et al.  On the use of NAND flash memory in high-performance relational databases , 2008 .

[35]  David J. DeWitt,et al.  An evaluation of buffer management strategies for relational database systems , 1986, Algorithmica.

[36]  Zhen He,et al.  Multi-buffer manager: Energy-efficient buffer manager for databases on flash memory , 2010, TECS.

[37]  Anthony K. H. Tung,et al.  A new approach to dynamic self-tuning of database buffers , 2008, TOS.

[38]  Sang Lyul Min,et al.  Current trends in flash memory technology: invited paper , 2006, ASP-DAC.

[39]  Ryan Johnson,et al.  Evaluating and repairing write performance on flash devices , 2009, DaMoN '09.

[40]  Ippokratis Pandis,et al.  TPC-E vs. TPC-C: characterizing the new TPC-E benchmark via an I/O comparison study , 2011, SGMD.

[41]  Nimrod Megiddo,et al.  ARC: A Self-Tuning, Low Overhead Replacement Cache , 2003, FAST.