Abstract
Considering the current price gap between hard disk and flash memory SSD storages, for applications dealing with large-scale data, it will be economically more sensible to use flash memory drives to supplement disk drives rather than to replace them. This paper presents FaCE, which is a new low-overhead caching strategy that uses flash memory as an extension to the RAM buffer of database systems. FaCE aims at improving the transaction throughput as well as shortening the recovery time from a system failure. To achieve the goals, we propose two novel algorithms for flash cache management, namely multi-version FIFO replacement and group second chance. This was possible due to flash write optimization as well as disk access reduction obtained by the FaCE caching methods. In addition, FaCE takes advantage of the nonvolatility of flash memory to fully support database recovery by extending the scope of a persistent database to include the data pages stored in the flash cache. We have implemented FaCE in the PostgreSQL open-source database server and demonstrated its effectiveness for TPC-C benchmarks in comparison with existing caching methods such as Lazy Cleaning and Linux Bcache.
This is a preview of subscription content, access via your institution.














Notes
The write-around policy and its variants are suggested for streaming and OLAP workloads to avoid polluting the cache [2]. We do not discuss them further in this paper, because our focus is on OLTP workloads.
Each segment contains 64,000 meta-data entries of 32 bytes each. Among the 40 segments required for a 10 GB flash cache, 38 of them are fetched directly from flash memory and the rest are rebuilt when the checksum of the data page and stored checksum in the meta-data directory are the same.
References
Ashdown, L., Kyte, T.: Oracle Database Concepts 11g Release 2. Oracle Corporation. https://docs.oracle.com/cd/E11882_01/server.112/e40540.pdf (2015)
Athanassoulis, M., Chen, S., Ailamaki, A., Gibbons, P.B., Stoica, R.: MaSM: efficient online updates in data warehouses. In: Proceedings of the 2011 ACM SIGMOD International Conference on Management of Data, SIGMOD ’11, pp. 865–876 (2011)
Axboe, J.: blktrace: Block Layer IO Tracing Tool. http://git.kernel.org/cgit/linux/kernel/git/axboe/blktrace.git
Axboe, J.: FIO (Flexible IO Tester). https://github.com/axboe/fio.git
Balakrishnan, M., Malkhi, D., Wobber, T., Wu, M., Prabhakaran, V., Wei, M., Davis, J.D., Rao, S., Zou, T., Zuck, A.: Tango: distributed data structures over a shared log. In: Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, SOSP ’13, pp. 325–340 (2013)
Belady, L.A., Nelson, R.A., Shedler, G.S.: An anomaly in space–time characteristics of certain programs running in a paging machine. Commun. ACM 12(6), 349–353 (1969)
Bernstein, P.A., Das, S., Ding, B., Pilman, M.: Optimizing optimistic concurrency control for tree-structured, log-structured databases. In: Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, SIGMOD ’15, pp. 1295–1309 (2015)
Bernstein, P.A., Reid, C.W., Das, S.: Hyder—a transactional record manager for shared flash. In: CIDR 2011, Fifth Biennial Conference on Innovative Data Systems Research, Asilomar, CA, USA, January 9–12, Online Proceedings, pp. 9–20 (2011)
Bhattacharjee, B., Ross, K.A., Lang, C., Mihaila, G.A., Banikazemi, M.: Enhancing recovery using an SSD buffer pool extension. In: Proceedings of the Seventh International Workshop on Data Management on New Hardware, DaMoN ’11, pp. 10–16 (2011)
Canim, M., Mihaila, G.A., Bhattacharjee, B., Ross, K.A., Lang, C.A.: An object placement advisor for DB2 using solid state storage. Proc. VLDB Endow. 2(2), 1318–1329 (2009)
Canim, M., Mihaila, G.A., Bhattacharjee, B., Ross, K.A., Lang, C.A.: SSD bufferpool extensions for database systems. Proc. VLDB Endow. 3(1–2), 1435–1446 (2010)
Chen, F., Lee, R., Zhang, X.: Essential roles of exploiting internal parallelism of flash memory based solid state drives in high-speed data processing. In: Proceedings of the 2011 IEEE 17th International Symposium on High Performance Computer Architecture, HPCA ’11, pp. 266–277 (2011)
Do, J., Zhang, D., Patel, J.M., DeWitt, D.J.: Fast peak-to-peak behavior with SSD buffer pool. In: 29th IEEE International Conference on Data Engineering, ICDE 2013, Brisbane, Australia, April 8–12, pp. 1129–1140 (2013)
Do, J., Zhang, D., Patel, J.M., DeWitt, D.J., Naughton, J.F., Halverson, A.: Turbocharging DBMS buffer pool using SSDs. In: Proceedings of the 2011 ACM SIGMOD International Conference on Management of Data, SIGMOD ’11, pp. 1113–1124 (2011)
DramExchange: Price Quites. http://www.dram-exchange.com/Price/NationalDramDetail.aspx
Fusion-IO: IOTurbine. http://www.fusionio.com/products/ioturbine
Gray, J., Fitzgerald, B.: Flash disk opportunity for server applications. Queue 6(4), 18–23 (2008)
Gray, J., Reuter, A.: Transaction Processing: Concepts and Technique. Morgan Kaufmann, Burlington (1993)
Hsu, W.W., Smith, A.J., Young, H.C.: Characteristics of production database workloads and the TPC benchmarks. IBM Syst. J. 40(3), 781–802 (2001)
Intel: Intel Cache Acceleration Software. http://www.intel.com/content/www/us/en/software/intel-cache-acceleration-software-performance.html
Intel: Solid-State Drives in Server Storage Applications. http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ssd-server-storage-applications-paper.pdf
Johnson, R., Pandis, I., Hardavellas, N., Ailamaki, A., Falsafi, B.: Shore-MT: a scalable storage manager for the multicore era. In: Proceedings of the 12th International Conference on Extending Database Technology: Advances in Database Technology, EDBT ’09, pp. 24–35 (2009)
Kang, W.H., Lee, S.W., Moon, B.: Flash-based extended cache for higher throughput and faster recovery. Proc. VLDB Endow. 5(11), 1615–1626 (2012)
Kang, W.H., Lee, S.W., Moon, B., Kee, Y.S., Oh, M.: Durable write cache in flash memory SSD for relational and NoSQL databases. In: Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data, SIGMOD ’14, pp. 529–540 (2014)
Koltsidas, I., Viglas, S.D.: Flashing up the storage layer. Proc. VLDB Endow. 1(1), 514–525 (2008)
Lee, S.W., Moon, B., Park, C.: Advances in flash memory SSD technology for enterprise database applications. In: Proceedings of the 2009 ACM SIGMOD International Conference on Management of Data, SIGMOD ’09, pp. 863–870 (2009)
Lee, S.W., Moon, B., Park, C., Kim, J.M., Kim, S.W.: A case for flash memory SSD in enterprise database applications. In: Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data, SIGMOD ’08, pp. 1075–1086 (2008)
Liu, X., Salem, K.: Hybrid storage management for database systems. Proc. VLDB Endow. 6(8), 541–552 (2013)
Lussier, D., Martin, S.: The BenchmarkSQL Project. http://benchmarksql.sourceforge.net
Oracle Corporation: Oracle TPC Benchmark C Full Disclosure Report. http://c970058.r58.cf2.rackcdn.com/fdr/tpcc/Oracle_SPARC_SuperCluster_with_T3-4s_TPCC_FDR_120210.pdf (2010)
Overstreet, K.: bcache. http://bcache.evilpiepirate.org
Samsung: Samsung Solid State Drive White Paper. http://www.samsung.com/global/business/semiconductor/minisite/SSD/us/html/whitepaper/whitepaper.html
SanDisk: FlashSoft. http://www.sandisk.com/enterprise/flashsoft
Sears, R., Ramakrishnan, R.: bLSM: a general purpose log structured merge tree. In: Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data, SIGMOD ’12, pp. 217–228 (2012)
Srinivasan, M., Saab, P.: FlashCache. https://github.com/facebook/flashcache
STEC: EnhanceIO SSD Caching Software. https://github.com/stec-inc/EnhanceIO
Subramaniam, M.: Exadata Smart Flash Cache Features and the Oracle Exadata Database Machine. Oracle Corporation. http://www.oracle.com/technetwork/database/exadata/exadatasmart-flash-cache-366203.pdf (2013)
Tsuei, T.F., Packer, A.N., Ko, K.T.: Database buffer size investigation for OLTP workloads. In: Proceedings of the 1997 ACM SIGMOD International Conference on Management of Data, SIGMOD ’97, pp. 112–122 (1997)
Willick, D., Eager, D., Bunt, R.: Disk cache replacement policies for network fileservers. In: Proceedings of the 13th International Conference on Distributed Computing Systems, pp. 2–11 (1993)
Zhao, M.: DM-cache cache target for device-mapper. https://github.com/mingzhao/dm-cache
Zhou, Y., Philbin, J., Li, K.: The multi-queue replacement algorithm for second level buffer caches. In: Proceedings of the General Track: 2001 USENIX Annual Technical Conference, pp. 91–104 (2001)
Acknowledgments
Sang-Won Lee and Bongki Moon are the corresponding authors of this paper. This research was supported in part by Institute for Information & communications Technology Promotion (IITP) (R0126-15-1088) and the IT R&D program of MKE/KEIT [10041244, SmartTV 2.0 Software Platform]. This work was also partly supported by the National Research Foundation of Korea (NRF) Grant (No. 2015R1A5A7037372) funded by the Korean Government (MSIP).
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Kang, WH., Lee, SW. & Moon, B. Flash as cache extension for online transactional workloads. The VLDB Journal 25, 673–694 (2016). https://doi.org/10.1007/s00778-015-0414-1
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00778-015-0414-1
Keywords
- Flash memory SSDs
- Cache
- Recovery