redis中scan的cursor细节分析

作者:sryan 更新时间:2019-09-06 17:40 分类:数据库

最近在开发 redioxy ,主要用于跨机房双写做高可用,由于要支持集群模式下的 scan 命令,所以对 scan 的细节做了一下了解。 我们都知道,在很早版本的redis中, keys 命令可以获取...

点击数:49 回复数:0

pika的架构分析 (1)

作者:sryan 更新时间:2019-06-21 17:54 分类:数据库

pika是360开源的一款使用rocksdb作为底层存储的kv数据库,协议层走的redis协议,所以也可以看做一款将数据持久化入rocksdb的”redis”。 pika的代码...

点击数:91 回复数:0

MySQL binlog purge流程

作者:sryan 更新时间:2019-05-21 17:29 分类:数据库

MySQL binlog purge流程 我们时常在mysql binlog过大的时候,会执行binlog的purge指令来减小binlog占用的磁盘空间,那么它的实现大概是如何实现的呢? 首先我们理...

点击数:93 回复数:0

MySQL Group Replication源码简析(3)

作者:sryan 更新时间:2018-11-09 16:14 分类:数据库

上一篇主要介绍了事务提交的流程,得知在事务提交前会通过 waitTicket 来等待冲突检测的结果,本篇主要来理一下冲突检测如何通知到提交事务的线程,也就是一个条件变量。相似地,我们还是先来理一下几个...

点击数:593 回复数:0

MySQL Group Replication源码简析(2)

作者:sryan 更新时间:2018-11-08 18:03 分类:数据库

上一个简析主要介绍了MGR的插件注册、调用流程,这篇文章会主要记录一下MGR中几个关键模块的梳理,便于后续将它们串联起来。 各种类用途 Continuation Continuation 其实是一个 ...

点击数:672 回复数:0

MySQL Group Replication源码简析(1)

作者:sryan 更新时间:2018-11-08 14:51 分类:数据库

这段时间在准备17号技术大会的技术分享,第一次在那么大的场合进行分享,还是有点紧张的,所以做了不少准备。但是说实话,双主解决方案只要没有涉及到冲突解决的,实现就那么回事,没有什么太大的技术含量。在方案...

点击数:624 回复数:0

双主复制的数据补偿

作者:sryan 更新时间:2018-09-04 12:30 分类:数据库

双主复制的数据补偿 双主复制,难点在于数据一致性的保证,这个在复制层面非常难实现,只有在某些特定的场景下才有折中的解决办法。 我们的双主复制方案的实际开发中,数据接入层对底层双向复制屏蔽了发生数据不一...

点击数:264 回复数:0

MySQL binlog心跳

作者:sryan 更新时间:2018-08-06 14:44 分类:数据库

MySQL binlog心跳 我们部署在线上的fake slave(用于同步数据或者是采集数据供业务订阅)经常会遇到某些特殊情况下,比如网络异常导致无法收到对端fin包导致无法走正常的连接关闭流程,这...

点击数:462 回复数:0

MySQL Group replication

作者:sryan 更新时间:2018-08-01 16:25 分类:数据库

MySQL Group replication 双写 最近在研究异地多活双写的方案,自己实现Master-Master同步,实现是可以实现,但是有很多限制。目前双写主要有以下几个问题: 主键冲突。当两...

点击数:405 回复数:0

[INNODB]ibd文件之索引页页目录(Directory slot)

作者:sryan 更新时间:2018-05-11 10:28 分类:数据库

[INNODB]ibd文件之索引页页目录(Directory slot) B+树的具体体现在于非叶子节点,用于标识范围并指向叶子节点页,也就是说,通过某个索引,我们无法获得具体的行位置,只能获得行所在...

点击数:264 回复数:0