ETCD的raft实现 (2)

作者:sryan 更新时间:2019-02-28 17:56 分类:分布式

在这篇文章中,整理一下数据流的逻辑。我们要明确,raft状态机的驱动有以下几种方式: 逻辑层的ticker 传输层收到的各种包的step 逻辑层的各种propose 除了以上的方式,raft状态机无法...

点击数:2722 回复数:0

ETCD的raft实现 (1)

作者:sryan 更新时间:2019-01-30 16:50 分类:分布式

读完raft的论文,大致对于一些细节有所了解,整体的实现也有所了解,总结起来,raft是一个共识协议,保证了一个集群内log的一致性。当log一致,则把log apply到state machine后...

点击数:2448 回复数:0

raft思考推导杂记

作者:sryan 更新时间:2019-01-30 17:31 分类:分布式

基础结论与疑问: Leader不会删除任何自己的日志,只会将自己的日志复制到Follower中 Follower的日志可能被覆盖,常见场景:该Follower在某个term中是Leader,但是数据未...

点击数:1678 回复数:0

MySQL Group Replication源码简析(3)

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

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

点击数:2233 回复数:0

MySQL Group Replication源码简析(2)

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

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

点击数:2251 回复数:0

MySQL Group Replication源码简析(1)

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

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

点击数:2039 回复数:0

锁、内存屏障与缓存一致性

作者:sryan 更新时间:2018-10-17 15:40 分类:操作系统

在应用层,关于锁的使用大家应该都很熟悉了,作用就是为了保护共享变量不被同时操作而导致无法预测的情况。然而深入到具体实现,锁仅仅只是锁定临界区吗? 锁的实现其实还必须实现一个语义,也就是内存屏障。内存屏...

点击数:5351 回复数:2

[ETCD] The event in requested index is outdated and cleared

作者:sryan 更新时间:2018-09-17 10:07 分类:工具使用

最近遇到一个很奇怪的问题,在线下调试很正常,但是到测试环境后, watch 后发现一直报 The event in requested index is outdated and cleared 错误...

点击数:2802 回复数:0

双主复制的数据补偿

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

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

点击数:957 回复数:0

初学vue,搭建此博客前端部分

作者:sryan 更新时间:2018-09-10 09:59 分类:web前端

后端已经有golang的模板渲染,后来自己又大概学了下vue,看了一会会就动手写了,感觉还是挺简单的,虽然我不是前端:) 安装 安装很简单,基本就是以下几步: 安装node.js,同时最好安装cnpm...

点击数:1455 回复数:0