An Efficient Design and Implementation of Multi-level Cache for Database Systems

  • Jiangtao Wang
  • Zhiliang Guo
  • Xiaofeng MengEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9049)


Flash-based solid state device(SSD) is making deep inroads into enterprise database applications due to its faster data access. The capacity and performance characteristics of SSD make it well-suited for use as a second-level buffer cache. In this paper, we propose a SSD-based multilevel buffer scheme, called flash-aware second-level cache(FASC), where SSD serves as an extension of the DRAM buffer. Our goal is to reduce the number of disk accesses by caching the pages evicted from DRAM in the SSD, thereby enhancing the performance of database systems. For this purpose, a cost-aware main memory replacement policy is proposed, which can efficiently reduce the cost of page evictions. To take full advantage of the SSD, a block-based data management policy is designed to save the memory overheads, as well as reducing the write amplification of flash memory. To identify the hot pages for providing great performance benefits, a memory-efficient replacement policy is proposed for the SSD. Moreover, we also present a light-weight recovery policy, which is used to recover the data cached in the SSD in case of system crash. We implement a prototype based on PostgreSQL and evaluate the performance of FASC. The experimental results show that FASC achieves significant performance improvements.


Solid state driver Flash Cost Cache 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Do, J., Zhang, D.H., Patel, J.M., DeWitt, D.J.: Fast peak-to-peak behavior with SSD buffer pool. In: 30th International Conference on Data Engineering, pp. 1129–1140. IEEE Press, Brisbane (2013)Google Scholar
  2. 2.
    Koltsidas, I., Viglas, S.D.: Designing a Flash-Aware Two-Level cache. In: Eder, J., Bielikova, M., Tjoa, A.M. (eds.) ADBIS 2011. LNCS, vol. 6909, pp. 153–169. Springer, Heidelberg (2011) CrossRefGoogle Scholar
  3. 3.
    Agrawal, N., Prabhakaran, V., Wobber, T., Davis, J.D., Manasse, M.S., Panigrahy, R.: Design tradeoffs for SSD performance. In: 2008 USENIX Annual Technical Conference, pp. 57–70. USENIX Association, Boston (2008)Google Scholar
  4. 4.
    Bouganim, L., Jnsson, B.T., Bonnet, P.: uFLIP: Understanding flash IO patterns. In: Online Proceedings of the 4th Biennial Conference on Innovative Data Systems Research, pp. 1–12, Asilomar (2009)Google Scholar
  5. 5.
    Chen, S.M.: FlashLogging: exploiting flash devices for synchronous logging performance. In: ACM SIGMOD International Conference on Management of Data, pp. 73–86. ACM Press, Rhode Island (2009)Google Scholar
  6. 6.
    Tsirogiannis, D., Harizopoulos, S., Shah, M.A., Wiener, J.L., Graefe, G.: Query processing techniques for solid state drives. In: ACM SIGMOD International Conference on Management of Data, pp. 59–72. ACM Press, Rhode Island (2009)Google Scholar
  7. 7.
    Lee, S.W., Moon, B., Park, C., Kim, J.M., Kim, S.W.: A case for flash memory ssd in enterprise database applications. In: ACM SIGMOD International Conference on Management of Data, pp. 1075–1086. ACM Press, Vancouver (2008)Google Scholar
  8. 8.
    Canim, M., Mihaila, G.A., Bhattacharjee, B., Ross, K.A., Lang, C.A.: SSD Bufferpool Extensions for Database Systems. Proceedings of the VLDB Endowment 3(2), 1435–1446 (2010)CrossRefGoogle Scholar
  9. 9.
    Do, J., Zhang, D.H., Patel, J.M., DeWitt, D.J., Naughton, J.F., Halverson, A.: Turbocharging DBMS buffer pool using SSDs. In: ACM SIGMOD International Conference on Management of Data, pp. 1113–1124. ACM Press, Athens (2011)Google Scholar
  10. 10.
    Kan, W.H., Lee, S.W., Moon, B.: Flash-based Extended Cache for Higher Throughput and Faster Recovery. Proceedings of the VLDB Endowment 5(1), 1615–1626 (2012)Google Scholar
  11. 11.
    Hu, X.Y., Eleftheriou, E., Haas, R., Iliadis, I., Pletka, R.: Write amplification analysis in flash-based solid state drives. In: Israeli Experimental Systems Conference 2009, pp. 82–90. ACM Press, Haifa (2009)Google Scholar
  12. 12.
    Zhou, Y.Y., Chen, Z.F., Li, K.: Second-Level Buffer Cache Management. IEEE Transactions on Parallel and Distributed Systems 15(6), 505–519 (2004)CrossRefMathSciNetGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.School of InformationRenmin University of ChinaBeijingChina

Personalised recommendations