-
Notifications
You must be signed in to change notification settings - Fork 13
db_009
DBMS中实现ACID两种方法之一就是Shadow Paging,另一种是Write Ahead Logging(WAL)。
WAL的思想是每次正式改磁盘数据前先写磁盘日志;而shadow paging则用了Copy-on-Write的思想,其中的page指的是磁盘的存储单位,shadow paging进行数据更新不在原地改,而是写好后更改页的引用到新的位置。
Shadow paging优点是实现简单,并减少了写日志的开销,缺点是并发性差,并且一个小的写可能导致很大的复制(CoW的原因)。
在实际中应用中,WAL应用较多。
注意不要和虚拟化中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/
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
Wiki: wiki.jcix.top ~聚沙成塔~ Blog: blog.jcix.top