博客专栏  >  数据库   >  MySQL源码研究

MySQL源码研究

专注于innodb技术研究

关注
2 已关注
52篇博文
  • MySQL半同步复制--master dump线程1

    dispatch_command->:COM_BINLOG_DUMP:->com_binlog_dump(thd, packet, packet_length) // 检查当前连接是否有复制权...

    2017-10-22 16:23
    401
  • MySQL半同步复制--master dump线程2

    mysql_binlog_send: //是否在binlog index文件中能够找到指定的binlog文件名 if (mysql_bin_log.find_log_pos(&linf...

    2017-10-22 16:29
    458
  • MySQL半同步复制--handle_slave_io--5

    handle_slave_io函数调用read_event函数读取event后,然后调用queue_event将读取的event写入relay log文件中。代码如下:static int queue...

    2017-10-15 10:24
    603
  • MySQL半同步复制--handle_slave_io--4

    handle_slave_io函数调用read_event函数:read_event函数从连接中读取事件,如果没有事件将会阻塞在这里等待master发送事件。#0 0x00898402 in __k...

    2017-10-11 21:02
    464
  • MySQL复制--master_info类成员变量说明

    master_info类 下面介绍类master_info定义。该类主要记录了连接到主库所有需要的信息及接收binlog的进度信息。在MySQL中只有一个实例即全局变量active_mi。 5.7中支...

    2017-10-01 16:06
    814
  • MySQL半同步复制--handle_slave_io--3

    handle_slave_io:函数流程 if (RUN_HOOK(binlog_relay_io, thread_start, (thd, mi))){ } //stage_con...

    2017-09-24 15:42
    559
  • MySQL 复制--slave 执行start slave时,连接master

    slave执行start slave命令时,会调用safe_connect连接master。那么master dump线程,作为master 连接,是什么样的线程呢?经gdb测试后,发现他也是一个普通...

    2017-09-24 14:42
    564
  • MySQL binlog group commit--sync stage

    说明: 1、如果sync_binlog等于1,那么need_LOCK_log为TRUE,然后将thd放到队列后,就不会释放该锁,等待sync_binlog_file调用结束后即文件sync后才解锁。...

    2017-09-17 14:11
    502
  • MySQL binlog group commit--commit stage

    说明: 1、process_commit_stage_queue:调用调用ha_commit_low->innobase_commit进入innodb层依次提交 2、 process_after_co...

    2017-09-17 15:35
    575
  • MySQL binlog group commit--flush 阶段

    在关系数据库中,为了满足ACID的D属性,即事务提交并返回给客户端之后,必须保证该事务的素有修改都持久化了,物理是在数据库崩溃的情况下或者宕机断电情况下,都必须保证数据不能丢失。这就需要事务提交过程中...

    2017-09-17 09:56
    450
  • mysql replication--MYSQL_BIN_LOG::change_stage

    mysql replication 源码解析

    2017-09-13 21:52
    386
  • MySQL半同步复制--handle_slave_io线程--1

    static int get_master_version_and_clock(MYSQL* mysql, Master_info* mi) version_number= atoi(mysq...

    2017-09-09 21:24
    188
  • MySQL半同步复制--handle_slave_io线程--2

    static int get_master_uuid(MYSQL *mysql, Master_info *mi) if (!mysql_real_query(mysql,STRING_WIT...

    2017-09-09 21:31
    288
  • MySQL半同步复制--RUN_HOOK

    半同步复制只是一个插件,一个动态加载的插件怎么实现事务处理线程等待、停下来呢? 这个插件只是个实现体,在MySQL源码中还是需要支撑这个实现体的框架。即在代码的某些位置,加入一些桩observer,在...

    2017-09-03 21:05
    452
  • insert流程加锁--主键索引

    row_ins_duplicate_error_in_clust 1、进入该函数的条件:      if (n_uniq&& (cursor.up_match >= n_uniq || cursor....

    2017-03-12 16:02
    340
  • insert流程加锁--辅助索引

    row_ins_scan_sec_index_for_duplicate 1、判断唯一索引是不是多列决定的,多列决定的话,一旦其中有一列为NULL,那么不做处理直接退出。 n_unique =dict...

    2017-03-12 16:05
    327
  • 一个奇怪的加锁案例--Execute “ if(not exists (select ..))” locked next record

    Execute “ if(not exists (select ..))” locked next

    2017-03-18 20:26
    891
  • innodb undo--undo page

    normalundo page: undo log header page:

    2017-03-29 20:19
    371
  • innodb undo--undo page(补充)

    trx_undo_seg_create flst_add_last(seg_hdr + TRX_UNDO_PAGE_LIST,page_hdr + TRX_UNDO_PAGE_NODE, mt...

    2017-04-08 22:02
    499
  • innodb undo--insert undo log

    对于INSERT_UNDO,调用函数trx_undo_page_report_insert进行插入。 该函数最后会生成回滚指针: *roll_ptr = trx_undo_build_roll_pt...

    2017-04-09 22:15
    493

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部