CHECKPOINT的建立需要进行脏页的刷新,因为是IO操作,常用的做法是建立FIFO刷写队列,刷新到一定程度,需要建立CHECKPOINT用于进行恢复和快速开机检查数据使用。在刷写的过程中,需要对数据进行锁定,来进行写文件和写盘,在写完后需要释放数据块的锁定标记。
系统设计中个,需要在INDEX中生成CHECKPOINT,以及在LOGDATA中生成CHECKJPOINT,INDEX中生成CHECKPOINT复杂,有较多的限制条件:
1、内存中大量的缓存,没有固化;
2、数据更新频繁;
3、关联多,改一个PAGE关系好几个相关PAGE;
4、为了使IO的次数降低,使用延迟写的机制,使用大量缓存,本身就是矛盾,不能实时刷新(刷文件,刷盘);
5、完整性检查复杂,多PAGE,状态控制复杂;
LOGDATA中建立CHECKPOINT,写DATA时建立, 定时还是定址,其中还是有刷文件和刷盘的不同要求,定址生成CHECKPOINT 定位方便,检查也容易,长时间数据没有,数据有可能出故障丢,定时数据恢复几率大,周期定义成性能关键,时间短,恢复的