开发者社区> 问答> 正文

在REDO LOG中大量的用户线程调用log_write_up_to等待在自己的lsn位置,如何避免

在REDO LOG中大量的用户线程调用log_write_up_to等待在自己的lsn位置,如何避免大量无效的唤醒?

展开
收起
游客n3klsubffc466 2022-05-09 13:43:10 473 0
1 条回答
写回答
取消 提交回答
  • InnoDB将阻塞的条件变量拆分为多个,log_write_up_to根据自己需要等待的lsn所在的block取模对应到不同的条件变量上去。 同时,为了避免大量的唤醒工作影响log_writer或log_flusher线程,InnoDB中引入了两个专门负责唤醒用户的线程: log_wirte_notifier和log_flush_notifier,当超过一个条件变量需要被唤醒时,log_writer和log_flusher会通知这两个线程完成唤醒工作。

    2022-05-10 12:29:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载