自定义博客皮肤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数据库

原创 MySQL半同步--after_send_event与after_reset_master

mysql_binlog_send->RUN_HOOK(binlog_transmit, after_send_event,                   (thd, flags, packet, log_file_name, skip_group ? pos : 0))->re...

2017-12-30 21:33:32 658 0

原创 MySQL半同步--before_send_event

mysql_binlog_send-->before_send_event --> repl_semi_before_send_event --> repl_semisync.updateSyncHeaderint repl_semi_before_send_event(Binl...

2017-12-30 12:26:14 415 0

原创 Aerospike保证不了一致性

介绍Aerospike虽然号称支持事务,但是并不能满足事务的一致性。对于内存+持久化的模式,当事务提交后,事务操作的记录值并没有刷到磁盘上,只是将其存到了swb的缓存中。这个缓存由一个后台线程进行刷写。如果事务提交后,此时所有的值都是看得到的;而其值没有刷到磁盘上,此时宕机重启后是会丢失记录的。至...

2017-12-28 21:54:55 1066 0

原创 MySQL半同步复制--reserve_header

mysql_binlog_send->reset_transmit_packet->RUN_HOOK(binlog_transmit, reserve_header, (thd, flags, packet))--repl_semi_reserve_header每次发送event前,如...

2017-12-24 16:56:52 481 0

原创 MySQL半同步复制--transmit_stop

函数调用mysql_binlog_send->(void) RUN_HOOK(binlog_transmit, transmit_stop, (thd, flags))->repl_semi_binlog_dump_end代码分析int repl_semi_binlog_dump_en...

2017-12-24 10:56:16 384 0

原创 MySQL半同步复制--transmit_start

介绍半同步复制binlog dump线程需要做的事情。相关结构:Binlog_transmit_observer transmit_observer = { sizeof(Binlog_transmit_observer), // len repl_semi_binlog_dump_st...

2017-12-23 20:29:04 531 0

原创 MySQL半同步复制--after_rollback

调用流程ha_rollback_low->(void) RUN_HOOK(transaction, after_rollback, (thd, all));->repl_semi_report_rollback->repl_semi_report_commit说明该桩设置在数据库...

2017-12-22 20:13:10 462 0

原创 MySQL半同步复制--after_commit

1、介绍在分析代码前,先介绍binlog中几个位置关系。2、代码分析MYSQL_BIN_LOG::ordered_commit->finish_commit: ha_commit_low ...

2017-12-20 19:37:18 640 0

转载 什么是僵尸进程,如何找到并杀掉僵尸进程?

http://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666541635&idx=1&sn=e3fd3a3982f0aeef58ba8dfa936dac55&chksm=80dcf6e8b7ab7ffe672ea...

2017-12-17 15:00:19 3140 0

原创 MySQL半同步--after_flush

简介在主库semisync加载或初始化时,调用函数semi_sync_master_plugin_init,为transaction_delegate、binlog_storage_delegate、binlog_transmit_delegate增加observer,分别对应plugin的变量为...

2017-12-17 10:33:31 570 0

原创 mysql 5.7 Transparent PageIO Compression

上接上篇。本篇作为补充:原理innodb的透明页IO压缩,利用punch hole和数据压缩来实现。在内存中是一个正常的页,只有在写到磁盘时,才进行压缩。调用函数os_file_io_complete进行punch hole操作,os_file_io_complete调用的是fallocate()...

2017-12-13 19:56:51 534 0

原创 MySQL5.7 InnoDB Page Compression

1、介绍mysql5.7中,innodb页结构增加了一个类型FIL_PAGE_COMPRESSED,用来完成Transparent page compression 特性2、说明1)压缩内容包括:除去FIL_PAGE_DATA外所有数据,包括tail2)压缩后的内容+FIL_PAGE_DATA会以...

2017-12-10 20:50:56 561 0

原创 Aerospike insert、drop、read和emigrate加锁及引用计数流程

1、insert2、drop3、read                                                    4、emigrate

2017-12-07 21:56:31 427 0

原创 MySQL的server_uuid获取之uuid()函数和uuid_short()函数

1、uuid()函数mysql> select uuid(),uuid(); +--------------------------------------+--------------------------------------+ | uuid() ...

2017-12-02 22:00:01 2656 1

翻译 Aerospike Has Removed the Large Data Type (LDT) Feature--Aerospike已经不再支持LDT特性

In 2013, Aerospike introduced a new feature known as Large Data Types (LDTs) to enable Aerospike to handle data that exceeded our row size limit. On ...

2017-12-02 17:07:52 477 0

原创 Aerospike的bin内存管理--即列内存管理

1、内存申请函数调用write_master->write_master_dim->write_master_bin_ops->write_master_bin_ops_loop->as_bin_particle_alloc_from_client:该函数对as_bin_s...

2017-12-01 20:32:05 765 0

原创 Aerospike 的索引内存管理--as_index->dim

2017-12-01 20:29:29 688 0

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