The VLDB Journal

, Volume 25, Issue 5, pp 673–694 | Cite as

Flash as cache extension for online transactional workloads

Special Issue Paper

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.

Keywords

Flash memory SSDs Cache Recovery 

References

  1. 1.
    Ashdown, L., Kyte, T.: Oracle Database Concepts 11g Release 2. Oracle Corporation. https://docs.oracle.com/cd/E11882_01/server.112/e40540.pdf (2015)
  2. 2.
    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)Google Scholar
  3. 3.
    Axboe, J.: blktrace: Block Layer IO Tracing Tool. http://git.kernel.org/cgit/linux/kernel/git/axboe/blktrace.git
  4. 4.
    Axboe, J.: FIO (Flexible IO Tester). https://github.com/axboe/fio.git
  5. 5.
    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)Google Scholar
  6. 6.
    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)CrossRefGoogle Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    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)CrossRefGoogle Scholar
  11. 11.
    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)CrossRefGoogle Scholar
  12. 12.
    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)Google Scholar
  13. 13.
    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)Google Scholar
  14. 14.
    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)Google Scholar
  15. 15.
  16. 16.
  17. 17.
    Gray, J., Fitzgerald, B.: Flash disk opportunity for server applications. Queue 6(4), 18–23 (2008)CrossRefGoogle Scholar
  18. 18.
    Gray, J., Reuter, A.: Transaction Processing: Concepts and Technique. Morgan Kaufmann, Burlington (1993)MATHGoogle Scholar
  19. 19.
    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)CrossRefGoogle Scholar
  20. 20.
  21. 21.
  22. 22.
    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)Google Scholar
  23. 23.
    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)CrossRefGoogle Scholar
  24. 24.
    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)Google Scholar
  25. 25.
    Koltsidas, I., Viglas, S.D.: Flashing up the storage layer. Proc. VLDB Endow. 1(1), 514–525 (2008)CrossRefGoogle Scholar
  26. 26.
    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)Google Scholar
  27. 27.
    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)Google Scholar
  28. 28.
    Liu, X., Salem, K.: Hybrid storage management for database systems. Proc. VLDB Endow. 6(8), 541–552 (2013)CrossRefGoogle Scholar
  29. 29.
    Lussier, D., Martin, S.: The BenchmarkSQL Project. http://benchmarksql.sourceforge.net
  30. 30.
    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)
  31. 31.
    Overstreet, K.: bcache. http://bcache.evilpiepirate.org
  32. 32.
  33. 33.
  34. 34.
    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)Google Scholar
  35. 35.
    Srinivasan, M., Saab, P.: FlashCache. https://github.com/facebook/flashcache
  36. 36.
    STEC: EnhanceIO SSD Caching Software. https://github.com/stec-inc/EnhanceIO
  37. 37.
    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)
  38. 38.
    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)Google Scholar
  39. 39.
    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)Google Scholar
  40. 40.
    Zhao, M.: DM-cache cache target for device-mapper. https://github.com/mingzhao/dm-cache
  41. 41.
    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)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  1. 1.School of Information and Communication EngineeringSungkyunkwan UniversitySuwonKorea
  2. 2.Department of Computer Science and EngineeringSeoul National UniversitySeoulKorea

Personalised recommendations