自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yanzongshuai的专栏

专注于MySQL、MariaDB、Percona、PostgreSQL数据库及Aerospike等nosql数据库

  • 博客(12)
  • 论坛 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 Aerospike SSD模式下写入swb内的记录格式

2017-09-29 21:12:05 816

转载 宇宙最强MySQL测试

转自http://hatemysql.com/?m=201511这个宇宙最强大的MySQL测试方法就是一行命令:yes "DO 0;" | mysql >/dev/null &这个测试方法还可以支持多进程测试哦,那就是:for i in {1..16}; do yes "DO 0;" | mysql > /dev/null & done这里就开了16个并发同时测试mysql的性能好吧,到了揭露真相

2017-09-25 21:40:36 1317

转载 MySQL备份原理详解

转自http://www.lai18.com/content/7451979.html?from=cancel本文为大家介绍了MySQL备份原理,欢迎大家阅读。备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低。衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(RTO),前者重点关注能恢复到什么程度,而

2017-09-24 17:00:08 873

原创 MySQL半同步复制--handle_slave_io--3

handle_slave_io:函数流程 if (RUN_HOOK(binlog_relay_io, thread_start, (thd, mi))){ } //stage_connecting_to_master: safe_connect->mysql_real_connect//建立到master的连接,函数返回成功后,参数mysql就代表和主库的连接,后面所有和

2017-09-24 15:42:32 930

原创 MySQL 复制--slave 执行start slave时,连接master

slave执行start slave命令时,会调用safe_connect连接master。那么master dump线程,作为master 连接,是什么样的线程呢?经gdb测试后,发现他也是一个普通的用户线程。只是命名为dump线程。IO thread线程start slave后,是作为一个客户端连接master的,master的dump线程作为一个正常的客户端连接分配的用户线程:main->m

2017-09-24 14:42:34 1198

原创 MySQL binlog group commit--commit stage

说明: 1、process_commit_stage_queue:调用调用ha_commit_low->innobase_commit进入innodb层依次提交 2、 process_after_commit_stage_queue:如果是半同步会调用after_commit处理超时 3、signal_done唤醒其他follower线程 4、这里是打开binlog_order_commi

2017-09-17 15:35:22 1161 1

原创 MySQL binlog group commit--sync stage

说明: 1、如果sync_binlog等于1,那么need_LOCK_log为TRUE,然后将thd放到队列后,就不会释放该锁,等待sync_binlog_file调用结束后即文件sync后才解锁。这样在flush阶段sigal_update唤醒binlog dump线程后,dump线程会在此时才能获取到LOCK_log锁,即binlog 持久化到磁盘后,才会将binlog发送到slave。

2017-09-17 14:11:14 1345

原创 MySQL binlog group commit--flush 阶段

在关系数据库中,为了满足ACID的D属性,即事务提交并返回给客户端之后,必须保证该事务的素有修改都持久化了,物理是在数据库崩溃的情况下或者宕机断电情况下,都必须保证数据不能丢失。这就需要事务提交过程中调用fsync或者fdatasync将数据持久化到磁盘。fsync是一个昂贵的系统调用,对于普通磁盘,每秒只能完成几百次fsync操作。fsync会限制每秒钟提交的事务数成为关系数据库瓶颈。

2017-09-17 09:56:06 1248

原创 mysql replication--MYSQL_BIN_LOG::change_stage

mysql replication 源码解析

2017-09-13 21:52:24 732 1

原创 MySQL半同步复制--handle_slave_io线程--2

static int get_master_uuid(MYSQL *mysql, Master_info *mi) if (!mysql_real_query(mysql,STRING_WITH_LEN("SHOW VARIABLES LIKE 'SERVER_UUID'")) &&(master_res= mysql_store_result(mysql)) && (master_row

2017-09-09 21:31:53 592

原创 MySQL半同步复制--handle_slave_io线程--1

static int get_master_version_and_clock(MYSQL* mysql, Master_info* mi) version_number= atoi(mysql->server_version);//select version()的结果 if (!mysql_real_query(mysql, STRING_WITH_LEN("SELECT UN

2017-09-09 21:24:14 537

原创 MySQL半同步复制--RUN_HOOK

半同步复制只是一个插件,一个动态加载的插件怎么实现事务处理线程等待、停下来呢? 这个插件只是个实现体,在MySQL源码中还是需要支撑这个实现体的框架。即在代码的某些位置,加入一些桩observer,在执行到这些桩的时候,如果有插件在这些observer中注册了实现体,就这执行这些实现体,否则什么也不执行。 RUN_HOOK就是这些桩的调用接口: #define RUN_HOOK(grou

2017-09-03 21:05:11 1768

空空如也

yzs87的留言板

发表于 2020-01-02 最后回复 2020-01-02

写博客能不能添加个撤销键

发表于 2018-01-04 最后回复 2018-01-06

innodb插入意向锁如何使用

发表于 2015-06-07 最后回复 2015-06-07

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除