Master Thread工作方式 在前面的文章:InnoDB体系架构——后台线程 说到:InnoDB存储引擎的主要工作都是在一个单独的后台线程Master Thread中完成.这篇具体介绍该线程的具体实现及该线程可能存在的问题. 一.InnoDB1.0X版本之前的Master Thread Master Thread具有最高的线程优先级别,内部由多个循环组成:主循环(loop).后台循环(background loop).刷新循环(flush loop).暂停循环(suspend loop),…
参考 innodb参数汇总  InnoDB的Master Thread工作原理 innodb_max_dirty_pages_pct 默认值 show variables like 'innodb_max_dirty_pages_pct'; %.加快了脏页刷新频率减少恢复时间,也可保证磁盘IO负载. innodb_adaptive_flushing(自 适应刷新)    影响每秒刷新脏页的数目.规则由原来的“大于innodb_max_dirty_pages_pct时刷新100个脏页到磁盘”变为…
Checkpoint技术 前篇 InnoDB体系架构(二)内存 从缓冲池.缓冲池的管理.重做日志缓冲.额外内存缓冲这四个点介绍了InnoDB存储引擎的内存结构,而在将缓冲池的数据刷新到磁盘的过程中使用到了Checkpoint技术,这篇文章我们着重讲解一下Checkpoint在内存中到应用. 一.Checkpoint使用背景 由于日常DML语句,如:Update / Delete操作首先操作了缓冲池的数据,并没有立即写入到磁盘,这有可能会导致内存中数据与磁盘中的数据产生不一致的情况.而与磁盘数据不…
InnoDB体系架构(二)内存 上篇文章 InnoDB体系架构(一)后台线程 介绍了MySQL InnoDB存储引擎后台线程:Master Thread.IO Thread.Purge Thread.Page Cleaner Thread 四种. 这篇文章将介绍 InnoDB体系架构中的内存,主要有四小结分别为:缓冲池.缓冲池的管理.重做日志缓冲.额外内存缓冲. 以下图为InnoDB存储引擎的内存结构.   一.缓冲池 InnoDB存储引擎是基于磁盘存储的,按照页的方式进行管理的,理解为基于磁盘…
InnoDB体系架构——后台线程 上一篇已经了解了MySQL数据库的体系结构 这一篇除了介绍InnoDB存储引擎的体系架构外,同时进一步了解InnoDB的后台线程. InnoDB存储引擎是多线程的模型,所以犹太有多个不同的后台线程,负责处理不同的任务,主要有:Master Thread.IO Thread.Purge Thread.Page Cleaner Thread四种. 从上面图可以简单的了解InnoDb存储引擎有多个内存块.而后台线程的主要工作是负责处理(刷新)内存池中的数据,保证缓冲池…
MySQL支持插件式存储引擎,常用的存储引擎则是MyISAM和InnoDB,通常在OLTP(Online Transaction Processing 在线事务处理)中,我们选择使用InnoDB,所以弄清楚Innodb体系架构,有助于我们更深刻的理解innodb的工作原理,以及更好的使用innodb,以及优化. 从上图大致可以看到innodb有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作: 1.维护所有进程/线程需要访问的多个内部数据结构. 2.缓存磁盘上的数据,方便快速的读…
我们简单交流下InnoDB master thread学习,有兴趣的朋友可以参考<<MySQL技术内蒙--InnoDB存储引擎第二版>> void master_thread(){ goto loop; loop: ;i<;i++){ thread_sleep() //sleep 1 second-->每秒执行操作(负载在情况下会延迟) do log buffer flush to disk //重做日志缓冲刷新到磁盘,即使这个事务没有提交(总是) % innodb_i…
下图简单显示了InnoDB的存储引擎的体系架构,从图可见,InnoDB储存引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作: 维护所有进程/线程需要访问的多个内部数据结构 缓存磁盘上的数据,方便快速地读取,同时在对磁盘文件的数据修改之前在这里缓存 重做日志(redo log)缓冲 ... 后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存是最近的数据.此外将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的情况下InnoDB 能恢复到正常状态. 后台…
程序控制工作方式:输入/输出完全由CPU控制,整个I/O过程中CPU必须等待其完成,因此对CPU的能力限制很大,利用率较低 程序中断工作方式:CPU不再定期查询I/O系统状态,而是当需要I/O处理时再通知CPU,从而解决了CPU低效等待的缺陷 DMA工作方式:它是通过使用DMA控制器来控制和管理数据传送,CPU的利用率大大提高 I/O通道技术:将CPU从I/O操作中完全脱离出来,由专门的通道机来完成I/O的处理与控制工作…
后台线程 1.Master Thread 2.IO Thread 3.Purge Thread 4.Page Cleaner Thread  内存 重做日志在以下三种情况下将重做日志缓存中的内容刷新到外部磁盘的重做日志文件: Master Thread 每一秒将重做日志缓存刷新到重做日志文件: 每个事务提交时会将重做日志缓存刷新到重做日志文件: 当重做日志缓冲池剩余空间小于1/2时,重做日志缓冲刷新到重做日志文件: double write:…