日志重做线程-the design and analysis of algorithms

时间:2024-06-29 04:38:42
【文件属性】:

文件名称:日志重做线程-the design and analysis of algorithms

文件大小:4.17MB

文件格式:PDF

更新时间:2024-06-29 04:38:42

达梦,DM7

4.4 调度线程 调度线程用于接管系统中所有需要定时调度的任务。调度线程每秒钟轮询一次,负责的 任务有以下一些: 1. 检查系统级的时间触发器,如果满足触发条件则生成任务加到工作线程的任务队列 由工作线程执行; 2. 清理 SQL缓存、计划缓存中失效的项,或者超出缓存限制后淘汰不常用的缓存项; 3. 检查数据重演捕获持续时间是否到期,到期则自动停止捕获; 4. 执行动态缓冲区检查。根据需要动态扩展或动态收缩系统缓冲池; 5. 自动执行检查点。为了保证日志的及时刷盘,减少系统故障时恢复时间,根据 INI 参数设置的自动检查点执行间隔定期执行检查点操作; 6. 会话超时检测。当客户连接设置了连接超时时,定期检测是否超时,如果超时则自 动断开连接; 7. 必要时执行数据更新页刷盘; 8. 唤醒等待的工作线程。 4.5 日志 FLUSH线程 任何数据库的修改,都会产生重做 REDO日志,为了保证数据故障恢复的一致性,REDO 日志的刷盘必须在数据页刷盘之前进行。事务运行时,会把生成的 REDO日志保留在日志缓 冲区中,当事务提交或者执行检查点时,会通知 FLUSH 线程进行日志刷盘。由于日志具备 顺序写入的特点,比数据页分散 IO写入效率更高。日志 FLUSH线程和 IO线程分开,能获 得更快的响应速度,保证整体的性能。DM7 的日志 FLUSH 线程进行了优化,在刷盘之前, 对不同缓冲区内的日志进行合并,减少了 IO次数,进一步提高了性能。 如果系统配置了实时归档,在 FLUSH 线程日志刷盘前,会直接将日志通过网络发送到 实时备机。如果配置了本地归档或者远程同步归档,则生成归档任务,通过日志归档线程完 成。 4.6 日志归档线程 日志归档线程包含同步归档线程和异步归档线程,前者负责本地归档和远程同步归档任 务,后者负责远程异步归档任务。如果配置了非实时归档,由日志 FLUSH 线程产生的任务 会分别加入日志归档线程,日志归档线程负责从任务队列中取出任务,按照归档类型做相应 归档处理。 将日志 FLUSH 线程和日志归档线程分开的目的是为了减少不必要的效率损失,除了远 程实时归档外,本地归档、远程同步归档、远程异步归档都可以脱离 FLUSH 线程来做,如 果放在 FLUSH线程中一起做会严重影响系统性能。 4.7 日志重做线程 为了提高故障恢复效率,DM在故障恢复时采用了并行机制重做 REDO日志,日志重做线


网友评论