自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

帅的数说

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

  • 博客(17)
  • 问答 (1)
  • 收藏
  • 关注

原创 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))->repl_semi_after_send_event:int repl_semi_after_send_event(B

2017-12-30 21:33:32 815

原创 MySQL半同步--before_send_event

mysql_binlog_send-->before_send_event --> repl_semi_before_send_event --> repl_semisync.updateSyncHeaderint repl_semi_before_send_event(Binlog_transmit_param *param, un

2017-12-30 12:26:14 580

原创 Aerospike保证不了一致性

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

2017-12-28 21:54:55 1376

原创 MySQL半同步复制--reserve_header

mysql_binlog_send->reset_transmit_packet->RUN_HOOK(binlog_transmit, reserve_header, (thd, flags, packet))--repl_semi_reserve_header每次发送event前,如果是半同步都需要添加3个字节。int ReplSemiSyncMaster::reserveSyncHeader(

2017-12-24 16:56:52 624

原创 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_end(Binlog_transmit_param *param){ //至少有一个slave开启了半同步

2017-12-24 10:56:16 580

原创 MySQL半同步复制--transmit_start

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

2017-12-23 20:29:04 713

原创 MySQL半同步复制--after_rollback

调用流程ha_rollback_low->(void) RUN_HOOK(transaction, after_rollback, (thd, all));->repl_semi_report_rollback->repl_semi_report_commit说明该桩设置在数据库回滚后。在binlog中,经常有rollback操作,用来将之前的事务回滚掉。对于回滚操作这里要在binlog中添加一个

2017-12-22 20:13:10 605

原创 MySQL半同步复制--after_commit

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

2017-12-20 19:37:18 895

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

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

2017-12-17 15:00:19 3807

原创 MySQL半同步--after_flush

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

2017-12-17 10:33:31 718

原创 mysql 5.7 Transparent PageIO Compression

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

2017-12-13 19:56:51 721

原创 MySQL5.7 InnoDB Page Compression

1、介绍mysql5.7中,innodb页结构增加了一个类型FIL_PAGE_COMPRESSED,用来完成Transparent page compression 特性2、说明1)压缩内容包括:除去FIL_PAGE_DATA外所有数据,包括tail2)压缩后的内容+FIL_PAGE_DATA会以block_size对齐,并将空洞清0。意味着将16K压缩到9K,也需要12KB的数据,因此将bloc

2017-12-10 20:50:56 743

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

1、insert2、drop3、read                                                    4、emigrate

2017-12-07 21:56:31 656

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

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

2017-12-02 22:00:01 3580 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 November 14, 2016, in this blog post, we announced

2017-12-02 17:07:52 602

原创 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->particle进行申请内存,并将相关bin属性和值load到申请的内存中。2、内存释放函数调用as_record_don

2017-12-01 20:32:05 1110

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

2017-12-01 20:29:29 1073

空空如也

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

TA关注的人

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