16 qhgxinxing

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 78w+

mysql 源码 innodb page 页面读取及刷脏 涉及的锁分析

InnoDB通过 读写锁、buf fix计数、io fix标记 来进行并发控制。page读取函数 buf_page_get_gen通过page_id 从链表读取(非第一次读取) 或者磁盘上加载(加载的过程中bpage→io_fix 为 BUF_IO_READ)buf_block_fix(fix_block) 引用计数加 1 (bpage→buf_fix_count )bpage→io_fix 完成后为BUF_IO_NONEmtr commit提交buf_block_unfix(bl

2020-09-17 20:54:45

mysql源码-os_event_t 事件机制解析

mysql源码-os_event_t 事件机制解析在linux 平台下,实现主要是实现原理方法 pthread_mutex_lock pthread_cond_wait pthread_cond_broadcast变量 pthread_mutex_t pthread_condattr_t 来实现的实现过程log.checkpointer_event 是创建一个事件的举例创建事件的变量log.checkpointer_event = os_event_create(“log_checkpoi

2020-09-06 23:14:01

mysql源码-线程池-如何保证仅有一个线程处理socket通信-EPOLLONESHOT

在epoll中 一个socket上的某个事件还是可能被触发多次,采用线程城池的方式来处理事件,可能一个socket同时被多个线程处理EPOLLONESHOT:只监听一次事件,当监听完这次事件之后,如果还需要继续监听这个socket的话,需要再次把这个socket加入到EPOLL队列里mysql线程池对描述符socket注册了EPOLLONESHOT事件,则系统最多触发其上注册的一个可读、可写或者异常事件,且只触发一次,如果下次再触发则必须使用epoll_ctl重置该描述符上注册的事件,包括EPOLLON

2020-07-01 15:51:23

mysql5.7 group commit 关于binlog文件切换(rotate)的笔记

@[TOC](mysql5.7 group commit 关于binlog文件切换(rotate)的笔记)在组提交的过程进入orderred_commit 函数 对binlog文件切换(rotate)的记录有事务提交完成此函数判断增加with_xid 确定为true,在写binglog 中写入 binary_log::XID_EVENTint binlog_cache_data::write_event(THD *thd, Log_event *ev)if (ev->get_type_cod

2020-05-13 17:59:24
勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。