InnoDB存储引擎之Master Thread的工作方式

InnoDB存储引擎体系架构 一、InnoDB体系结构 InnoDB 存储引擎有多个内存块,这些内存块组成了一个大的内存池,负责的工作如下: 维护所有进程/线程需要访问的多个内部数据结构。 缓存磁盘上的数据,方便快速地读取,同时在对磁盘文件的数据修改之前在这里缓存。 重做日志缓冲(redo log)。 后台线程的作用:负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据。将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的情况下 InnoDB 能恢复到正常运行状态。 二、后台线程 InnoDB存储引擎是多线程模型, 阅读详情

InnoDB 1.0.X版本之前的Master Thread:
Master Thread拥有最高的线程优先级:后台有多个循环(主循环,后台循环,刷新循环,暂停循环)。
在主循环中有两大部分的操作,分别是每秒执行的操作,每十秒执行的操作:
每秒执行的操作:
(1)redo log刷新到磁盘,即使这个事务没有提交(总是),这也很好的解释了为什么再大的事务提交时间总是很短。
(2)合并插入缓冲:当前IO次数<5的时候,InnoDB认为当前的IO压力比较小,可以执行合并插入缓冲的操作。
(3)至多刷新100个脏页到磁盘:首先判断当前缓冲区中脏页的比例,如果超过阈值(默认是90%),那么InnoDB就认为有必要进行脏页刷新操作,就会将至多100个脏页进行刷新。
(4)当前没有用户活动,切换到backgroud look(可能)。
每十秒执行的操作:
(1)刷新100个脏页到磁盘:判断过去10秒内的IO操作<200次,那么就执行这个操作。
(2)合并插入缓冲(总是)
(3)redo log刷新到磁盘(总是)
(4)删除无用的Undo页(总是):对于delete,update操作,原先的行会被标记为删除,但是由于一致性读的关系,需要保留这些行版本信息。在执行full purge过程中,InnoDB会判断已经被标记为删除的行是否真的可以删除,如果可以删除,那么立即进行删除,实际上在执行full purge操作的时候,每次最多尝试删除20个undo页。
(5)刷新100个或者10个脏页到磁盘:判断当前脏页的比例,若>70%,那么就刷新100个脏页到磁盘,否则刷新10个脏页到磁盘。(第1步操作,刷新100个之后还有这么多脏页)
background loop:当前没有用户活动或者数据库关闭,如果这个loop中也没有什么事情可以做,那么就会挂起
(1)删除无用的undo
(2)合并20个插入缓冲
(3)跳到主循环
(4)不断刷新100个页直到符合条件

在InnoDB1.2.x之前版本的Master Thread:
引入innodb_io_capacity来控制刷先到磁盘的页数:
(1)合并插入缓冲的时候,默认的合并数为innodb_io_capacity的5%
(2)从缓冲区刷新脏页的时候,默认值为innodb_io_capacity

在InnoDB1.2.x之后版本的Master Thread:
独立处一个Page Cleaner Thread专门用来做脏页刷新。

[原创]Keil工程STM32F103C8T6无缝转换到STM32F103RCT6 有个项目,老版本是STM32F103C8T6,硬件资源不够了,新版本采用STM32F103RCT6。 无缝过渡,如下: 选定芯片 宏定义改为STM32F10X_HD,USE_STDPERIPH_DRIVER 删除原有的启动汇编文件,更换为高密度器件汇编文件 时钟系统紊乱? 那得看你程序怎么写: 先看F103时钟树 int main(void) { unsigned char stat... 阅读详情

相关推荐

【强化学习的数学原理-赵世钰】课程笔记(一)基本概念

在B站上学习强化学习的课程笔记,笔记非常详细清晰,会持续更新

qq_64671439的博客 1万+

InnoDB体系架构(四)Master Thread工作方式

Master Thread工作方式   在前面的文章:InnoDB体系架构——后台线程说到:InnoDB存储引擎的主要工作都是在一个单独的后台线程Master Thread中完成。这篇具体介绍该线程的具体实现及该线程可能存在的问题。 一、InnoDB1.0X版本之前的Master Thread   Master Thread具有最高的线程优先级别,内部由多个循环组成:主循环(lo...

189

Tesseract-Ocr踩坑下载以及进行检验

1 OCR,即Optical Character Recognition:光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。下载完成后进行解压找到这两个,然后复制到之前下载Tesseract-Ocr的tessdata文件下。可能会出现报错说chi下载的问题咱们不用管继续ok让它先下载完毕,后续会有下载chi的步骤。四、检验tesseract使用(将以下图片进行下载我这里将以下图片命名为3.png)我这里选的是2024年的版本如果下载不了;4 在安装的时候(找到下载的exe文件,双击)

m0_51428325的博客 1915

InnoDB存储引擎——Master Thread工作方式

Master Thread是InnoDB存储引擎非常核心的一个后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓冲、UNDO页的回收等。

Be The Best! 1955

Linux双网卡设置IP属于同一网段的ping方法以及现象记录分析

文章目录前言ping以及MAC地址总结 前言 写在前面:经常遇到客户将板卡上的两个网络设备的IP地址设置为同一网段的情况,比如eth0:192.168.0.232,eth1:192.168.0.30. 我的解释是,不能设置为同一网段,或者使用其中一个时候下线另外一个网卡。但是我不知道这个说法到底是根据什么,查了很多资料也没找到明确的说法,但是下面这个实验能够说明一些现象的原因。 ping以及MAC地址 首先查看网卡的信息 ifconfig 因为两个网卡都在同一个网段,所以如果这个时候直接和我们的主机(I

“逛丢一只鞋”的博客 1万+

LLM大模型-vLLM本地部署全流程:Windows WSL2环境安装、HuggingFace与Modelscope模型加载与本地运行、Docker化部署与镜像分发

vLLM本地部署大模型方案 vLLM是一款高性能大模型推理引擎,通过PagedAttention技术显著提升吞吐量和内存效率,支持低成本、高并发的本地部署。 核心优势: 性能卓越:吞吐量远超同类方案,支持连续批处理等高级功能 成本优化:减少GPU服务器需求 兼容性强:提供类OpenAI的简洁API 部署步骤: 硬件准备:需NVIDIA GPU(如A100/3090),显存≥模型参数量×2(7B模型需14GB) 软件环境: Linux系统或Windows WSL2 安装CUDA 12.1+和Python 3.

2202_75674969的博客 4565

InnoDB存储引擎之Master Thread

InnoDB存储引擎的主要工作都是在一个单独的后台线程Master Thread中完成的。     1.InnoDB 1.0.x版本之前的Master Thread         Master Thread具有最高的线程优先级别。其内部由多个循环组成:主循环(loop)、后台循环(backgroup loop)、刷新循环(flush loop)、暂停循环(suspend loop)。Mast

chenlvzhou的专栏 1544

通俗易懂的图解二叉搜索树、AVL树和红黑树

搜索是一种很常见的需求,当数据较多时,如何找到目标对象时,即需要搜索查找。 那么如何快速找到目标呢,最朴素的思想就是暴力查找,一个一个对比。 显然,当数据量增大时,我们需要优化查找方法获取更快的查找速度,我们可以通过维护一个有序数组,从而实现二分查找,查找速度从O(n)降为O(longn)。 但是数组并不便于插入和删除,链表便成为了最好的选择。 既然是采用二分查找,那么不如直接按照查找的步骤维护一种数据结构,于是二叉搜索树出现了。 二叉搜索树的性质为: 若左子树不为空,则左子树上所有节点值都小于根结点值;

暗色光的博客 758

2.3 Innodb存储引擎之Master Thread工作方式

2.5 Master Thread工作方式 2.5.1 InnoDB 1.0.x 版本之前的 Master Thread Master Thread具有最高的线程优先级别。其内部由多个循环(loop)组成∶主循环(loop)、后台循环(backgroup loop)、刷新循环(flushloop)、暂停循环(suspend loop)。 Master Thread 会根据数据库运行的状态在 loop、background loop、flush loop 和 suspend loop 中进行切换。 Loop

lxsxkf的博客 207

【WorkBuddy专栏58】腾讯为什么要「自己打自己」——7款AI智能体产品全景对比与「赛马」逻辑深度拆解

【WorkBuddy专栏57】你的左侧空间不是「日任务清单」——工作空间才是 WB 变聪明的核心秘密

AI人人懂 674

第三篇:NVIDIA cuOpt Python API 详解:LP、QP、MILP 建模与求解,附核心术语名词解释

NVIDIA cuOpt是一款GPU加速的优化求解库,支持LP、QP、MILP和路径优化问题。本文详细介绍了其Python API使用方法,包括核心类Problem的变量定义、约束添加、目标设置和求解配置,并提供了术语解释。cuOpt通过GPU并行计算大幅提升大规模优化问题的求解效率,支持多种求解算法和参数配置,适用于需要高性能计算的优化场景。安装方式包含pip和Docker两种,验证安装后即可快速开始建模求解。

算法工程师 236

MySQL技术:InnoDB 存储引擎(不同版本的 Master Thread 工作方式)

asdsInnoDB 存储引擎的主要工作都是在一个单独的后台线程Master Thread 中完成的,这一节将具体解释该线程的具体实现及该线程可能存在的问题。 asdsadasdasdasdsadasdasdasdsadassdasdsadasdasdsadasdsadassadasdas————《MySQL技术内幕INNODB存储引擎》 Master Thread 工作方式lnnoDB 1.0.x 版本之前的Master Threadss loop循环ss background loop 循环ss.

置身于量子事业的软件开发爱好者 465

在 Windows 11 下运行 OminiParse V2,详细教程【含问题解决细节】

OmniParser V2 是微软推出的 GUI 智能体解析工具,可将屏幕截图转换为结构化元素,帮助 LLM 理解和操作界面。它在检测小图标和推理速度上显著提升,延迟降低 60%,并支持多种 LLM。

简简单单Onlinezuozuo 1088

InnoDB(Master Thread工作方式)(读MySQL技术内幕-InnoDB存储引擎)

内部由多个循环组成:主循环(loop),后天循环(backgroup loop),刷新循环(flush loop),暂停循环(suspend loop) Master Thread 会根据数据库运行状态在各个循环中进行切换 Loop主循环(大部分操作):每秒的操作和每0秒的操作 每秒的操作: 1.日志缓冲刷新到磁盘,即使事务没有提交(总是)----->即使再大的事务,提交(commit)时间也很短的原因 2。合并插入缓冲(可能)---->Innodb会判断前一秒的IO次数是否小于5次,

杨宇java的博客 157

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

《MySQL技术内幕:InnoDB存储引擎第2版》——2.5 Master Thread工作方式

2.5 Master Thread工作方式 在2.3节中我们知道了,InnoDB存储引擎的主要工作都是在一个单独的后台线程Master Thread中完成的,这一节将具体解释该线程的具体实现及该线程可能存在的问题。2.5.1 InnoDB 1.0.x版本之前的Master ThreadMaster Thread具有最高的线程优先级别。其内部由多个循环(l...

weixin_34319374的博客 103

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

InnoDB存储引擎学习总结

概述 InnoDB存储引擎是MySQL5.5以后的默认的表存储引擎,最早由Innobase Oy公司开发,该公司已于2006年被Oracle收购。该存储引擎是第一个完整支持ACID事务的MySQL存储引擎(BDB是第一个支持事务的MySQL存储引擎,现在已经停止开发)。其特点是支持行锁设计、支持MVVC(多并发版本控制)、支持外键、提供一致的非锁定读,同时被设计用来最有效地利用以及使用内存和CU...

qq_38348841的博客 1269

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【学习笔记】MySQL技术内幕InnoDB存储引擎——第2章 InnoDB存储引擎

1>InnoDB是基于磁盘存储的数据库引擎,一般使用缓冲池技术来提高整体性能在数据库中进行读取页的操作,首先将页存放在缓冲池中,如果读取时在缓冲池中命中了,则直接读取。在修改数据库页时,先在缓冲池修改,再以一定的频率刷新到磁盘上各种页的含义 P232>缓冲池如何管理①一般情况下,通过LRU算法,频繁使用的在前端,缓冲池不能存放新页时,会释放LRU列表尾端的页②页修改后为脏页,保存在Flush列表中。

Lchen_kk的博客 961

第2章 InnoDB存储引擎  

文章目录InnoDB存储引擎的版本2.3 InnoDB体系结构后台线程内存 InnoDB存储引擎的版本 InnoDB存储引擎包含所有MySQL数据库的二进制发行版本中,早期版本随着MySQL数据库的更新而更新,在MySQL5.1中,可以 支持两个版本的InnoDB,一个是静态编译的InnoDB版本,可以称为老版本的InnoDB,另一个是动态加载的InnoDB版本,官方称为InnoDB Plugin...

阿超的博客 404

Innodb存储引擎-体系架构、checkpoint、Master Thread工作方式、Insert Buffer、double write、自适应哈希索引、异步IO、预读、刷新邻接页、启动关闭恢复

InnoDB是事务安全的MySQL存储引擎,设计上采用了类似于Oracle数据库的架构。通常来说,InnoDB 存储引擎是OLTP应用中核心表的首选存储引擎。同时,也正是因为InnoDB的存在,才使MySQL数据库变得更有魅力。InnoDB存储引擎最早由InnobaseOy公司开发,被包括在MySQL数据库所有的二进制发行版本中,从MySQL 5.5版本开始是默认的表存储引擎(之前的版本InnoDB存储引擎仅在Windows下为默认的存储引擎)。

迷雾总会解 631

Mysql 技术内幕 Innodb存储引擎 第二章 Innodb存储引擎

第二章 Mysql体系结构和存储引擎。

weixin_44472484的博客 1014

MySQL技术内幕InnoDB存储引擎学习笔记(第二章)

第二章 InnoDB存储引擎 一、实验环境 宿主机系统:windows7 虚拟机:OracleVMVirtualBox Linux:ubuntukylin-14.04.1-amd64.iso jdk:1.7.0_101 mysql:5.7.12 书上的mysql版本:5.6.6 二、InnoDB是什么 1、创始人为Heikki Tuuri(1964,芬兰赫尔辛基),由Innoba

lanonola的专栏 2196

InnoDB存储引擎

对于非聚集索引的插入或更新,不是每一次直接插入到索引页中,而是先判断插入的非聚集索引页是否在缓冲池中,如果在则直接插入,如果不在则先放入到一个InsertBuffer对象中“欺骗”数据库,然后再以一定的频率和情况进行InsertBuffer和辅助索引页子节点的merge操作,通常。数据库中的缓冲池通过LRU(最近最少使用)算法来进行管理,最频繁使用的页在LRU列表的前端,当缓冲池不能存放新读取到的页时,将首先释放LRU列表中尾端的页。一段时间后,当IO返回结果时,再通知CPU进行处理。......

weixin_45718510的博客 3501

mysql进阶笔记 InnoDB (一)InnoDB存储引擎

文章目录mysql进阶笔记 InnoDB (一)InnoDB存储引擎InnoDB体系架构后台线程内存Checkpoint技术Master Thread工作方式InnoDB关键特性插入缓冲(Insert Buffer)两次写(Double Write)自适应哈希索引(Adaptive Hash Index)异步IO(Async IO)刷新邻接页(Flush Neighbor Page) mysql进阶笔记 InnoDB (一)InnoDB存储引擎 InnoDB体系架构 1.内存池:维护进程/线程访问的数据结

lzr_ps的博客 367

mysql-innodb存储引擎概述

一、innodb体系架构 1、后台线程 (1)master thread 负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性(包括脏页的刷新,合并插入缓冲,undo页回收等) (2)IO thread 负责将使用了AIO(async io)处理写IO请求的IO回调,io thread包括(insert buffer 、write、read、log),可以通过innodb_read_io

formydream的博客 379

innodb存储引擎

1、innodb引擎概述 2、innodb引擎版本及特性 2.1)老版本innodb 2.2)1.0版本innodb 2.3)1.1版本innodb 2.4)1.2版本innodb 3、innodb体系架构 3.1)后台线程 3.1.1)master thread 3.1.2)io thread 3.1.3)purge thread 3.1.4)page cleaner thread 3.2.

m0_65850151的博客 900

mysql技术内幕 innodb存储引擎第二版 第二章小结

2.1 概述 innodb存储引擎支持行锁,mvcc,外键,一致行非锁定读。 Mvcc:多版本并发控制。 一致性非锁定读:当读取的数据被加上x锁时,读取数据不会阻塞,读取的是该数据的快照,rc隔离级别下读取的是最新的一份快照,rr下读取的是事务开始时的快照。 如果要支持一致性锁定读,可以通过两种方式 1 select … for update 2 select ... lock in...

听说的专栏 288
上一篇: HotSpot中的安全点详解
下一篇: HashMap1.8和HasMap1.6的区别
DanLongChen
博客等级 码龄9年 13粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值