序言
在之前写的一些文章中,我已经粗略地介绍了新型非易失内存NVM的特点及潜在的应用能力,以及数据库科学家是如何考虑将NVM引入到DBMS的设计中来的。
今天,我再分享一篇论文的心得,它介绍的是单纯将NVM用作数据库系统的logging存储介质时存在的问题以及解决方案。
论文原文链接如下:
NVWAL: Exploiting NVRAM in Write-Ahead Logging
背景简介
在介绍这篇论文的基本思想和设计模型之前,有必要做一点概念性的铺陈,比如说NVM是什么,Database是什么,DBMS又是什么,Write-Ahead Log是什么。如下是相关基础概念的解释或知识链接。
NVM
关于NVM(Non-Volatile Memory),又可以称为SCM(Storage-class Memory)和PM(Persistent Memory)。我在 一种新型内存SCM(Storage Class Memory)的简单介绍 和 一种新型内存(SCM)的简单应用思考 里已经做了比较多的基本概念讲解,有需要的读者可以自行点击阅读。
Database设计
关于数据库系统的知识,推荐一个基本知识学习网站Database Tutorial,从“什么是数据”,到“Quering语句”,到“B-Tree”的结构,都有比较详细的理论介绍,适合初学者学习。另外Github上也有数据库系统方面的指南,比如awesome-db。当然,如果是入门的话,从MySQL开始似乎比较合适。第一是因为它是面向磁盘的数据库,设计模型较原始,第二是因为使用的人多可参考资料也就多了。
只不过就连我现在,也只是正在入门的过程中罢了。
Write-Ahead Log
Write-Ahead Log 即预写式日志,可参考维基百科,或者想深入了解的读者可以直接阅读其脱胎的MIT于1992年发表的论文ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging 1
论文概述
既然我们已经具备了对以上三者的基本了解,现在可以进行论