Lazy Writer&CheckPoint

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lazy Writer&CheckPoint相关的知识,希望对你有一定的参考价值。

Lazy Writer存在的目的是对缓冲区进行管理。当缓冲区达到某一临界值时,Lazy Writer会将缓冲区内的脏页存入磁盘文件中,而将未修改的页释放并回收资源。

CheckPoint或Lazy Writer通过将日志文件末尾的LSN号和缓冲区中数据文件的LSN进行对比,只有缓冲区内LSN号小于日志文件末尾的LSN号的数据才会被写入到磁盘中的数据库。因此确保了WAL(Write-Ahead logging在数据写入到数据库之前,先写入日志)。

 

CheckPoint会将所有缓冲区的脏页写入磁盘,不管脏页中的数据是否已经Commit。这意味着有可能已经写入磁盘的“脏页”会在之后回滚(RollBack).不过不用担心,如果数据回滚,SQL Server会将缓冲区内的页再次修改,并写入磁盘。

 

恢复间歇的默认参数是0,意味着由SQL Server来管理这个回复间隔。而自己设置恢复间隔也是需要根据具体情况来进行界定。更短的恢复间歇意味这更短的恢复时间和更多的磁盘IO,而更长的恢复间歇则带来更少的磁盘IO占用和更长的恢复时间.

以上是关于Lazy Writer&CheckPoint的主要内容,如果未能解决你的问题,请参考以下文章

Java I/O---Reader & Writer(字符流)

线段树初步&&lazy标记

System.Lazy<T> 如何访问 T 的私有构造函数?

IPC 经典问题:Reader & Writer Problem

C# - 如何将 Lazy<List<T>> 转换为 Lazy<List<U>>?

信号量解决写者优先&读者优先&公平竞争(reader writer)