Fast peak-to-peak behavior with SSD buffer pool

A promising use of flash SSDs in a DBMS is to extend the main memory buffer pool by caching selected pages that have been evicted from the buffer pool. Such a use has been shown to produce significant gains in the steady state performance of the DBMS. One strategy for using the SSD buffer pool is to throw away the data in the SSD when the system is restarted (either when recovering from a crash or restarting after a shutdown), and consequently a long “ramp-up” period to regain peak performance is needed. One approach to eliminate this limitation is to use a memory-mapped file to store the SSD buffer table in order to be able to restore its contents on restart. However, this design can result in lower sustained performance, because every update to the SSD buffer table may incur an I/O operation to the memory-mapped file. In this paper we propose two new alternative designs. One design reconstructs the SSD buffer table using transactional logs. The other design asynchronously flushes the SSD buffer table, and upon restart, lazily verifies the integrity of the data cached in the SSD buffer pool. We have implemented these three designs in SQL Server 2012. For each design, both the write-through and write-back SSD caching policies were implemented. Using two OLTP benchmarks (TPC-C and TPC-E), our experimental results show that our designs produce up to 3.8X speedup on the interval between peak-to-peak performance, with negligible performance loss; in contrast, the previous approach has a similar speedup but up to 54% performance loss.

[1]  Kenneth A. Ross,et al.  An Object Placement Advisor for DB2 Using Solid State Storage , 2009, Proc. VLDB Endow..

[2]  Stratis Viglas,et al.  Designing a Flash-Aware Two-Level Cache , 2011, ADBIS.

[3]  Dawoon Jung,et al.  HeteroDrive : Reshaping the Storage Access Pattern of OLTP Workload Using SSD , 2009 .

[4]  Kenneth A. Ross,et al.  Enhancing recovery using an SSD buffer pool extension , 2011, DaMoN '11.

[5]  Stratis Viglas,et al.  Data management over flash memory , 2011, SIGMOD '11.

[6]  Hamid Pirahesh,et al.  ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging , 1998 .

[7]  David J. DeWitt,et al.  Adapting database storage for new hardware , 2009 .

[8]  Stratis Viglas,et al.  Flashing up the storage layer , 2008, Proc. VLDB Endow..

[9]  Jignesh M. Patel,et al.  Join processing for flash SSDs: remembering past lessons , 2009, DaMoN '09.

[10]  David J. DeWitt,et al.  Turbocharging DBMS buffer pool using SSDs , 2011, SIGMOD '11.

[11]  Kenneth A. Ross,et al.  SSD bufferpool extensions for database systems , 2010, Proc. VLDB Endow..

[12]  Kenneth A. Ross,et al.  Storage Class Memory Aware Data Management , 2010, IEEE Data Eng. Bull..

[13]  X. Zhang,et al.  Appendix to the Paper : , 2009 .

[14]  Philip A. Bernstein,et al.  Principles of Transaction Processing , 1996 .

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