MOT检查点概念
在openGauss中,检查点是事务序列中一个点的快照,在该点上,可以保证堆和索引数据文件已经同步了检查点之前写入的所有信息。
在执行检查点时,所有脏数据页都会刷新到磁盘,并将一个特殊的检查点记录写入日志文件。
数据直接存储在内存中。MOT没有像openGauss那样存储数据,因此不存在脏页的概念。
为此,我们研究并实现了CALC算法,该算法在耶鲁大学发布的Low-Overhead Asynchronous Checkpointing in Main-Memory Database Systems, SIGMOD 2016中得到了描述。
主内存数据库系统中的低开销异步检查点[对比:磁盘与MOT]。
CALC检查点算法:内存和计算开销低
检查点算法具有以下优点:
- 降低内存使用量-每条记录在任何时候最多存储两个副本。在记录处于活动且稳定版本相同或没有记录任何检查点时,仅存储记录的一个物理副本,可以最大限度地减少内存使用。
- 低开销:CALC的开销比其他异步检查点算法小。
- 使用虚拟一致性点:CALC不需要静默数据库以实现物理一致性点。
检查点激活
MOT检查点被集成到openGauss的封装的检查点机制中。检查点流程可以通过执行CHECKPOINT;命令手动触发,也可以根据封装的检查点触发设置(时间/大小)自动触发。
检查点配置在mot.conf文件中执行,请参见检查点(MOT)部分。