Skip to content
Zhang Jc edited this page Mar 2, 2018 · 4 revisions

Shadow paging和Write ahead logging(DBMS 数据恢复技术)

DBMS中实现ACID两种方法之一就是Shadow Paging,另一种是Write Ahead Logging(WAL)。

WAL的思想是每次正式改磁盘数据前先写磁盘日志;而shadow paging则用了Copy-on-Write的思想,其中的page指的是磁盘的存储单位,shadow paging进行数据更新不在原地改,而是写好后更改页的引用到新的位置。

Shadow paging优点是实现简单,并减少了写日志的开销,缺点是并发性差,并且一个小的写可能导致很大的复制(CoW的原因)。

在实际中应用中,WAL应用较多。

不要与Shadow page table搞混

注意不要和虚拟化中shadow page table(影子页表)搞混,影子页表是内存虚拟化的一种方式之一,软件实现,与之相关的技术是硬件辅助内存虚拟化EPT。(https://github.com/zhangjaycee/real_tech/wiki/virtual_021)


[1] Shadow paging, https://en.wikipedia.org/wiki/Shadow_paging

[2] 数据库恢复技术简介(影子分页和日志方式), http://www.codeweblog.com/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%81%A2%E5%A4%8D%E6%8A%80%E6%9C%AF%E7%AE%80%E4%BB%8B-%E5%BD%B1%E5%AD%90%E5%88%86%E9%A1%B5%E5%92%8C%E6%97%A5%E5%BF%97%E6%96%B9%E5%BC%8F/

Clone this wiki locally