在这篇文章中,整理一下数据流的逻辑。我们要明确,raft状态机的驱动有以下几种方式: 逻辑层的ticker 传输层收到的各种包的step 逻辑层的各种propose 除了以上的方式,raft状态机无法...
读完raft的论文,大致对于一些细节有所了解,整体的实现也有所了解,总结起来,raft是一个共识协议,保证了一个集群内log的一致性。当log一致,则把log apply到state machine后...
基础结论与疑问: Leader不会删除任何自己的日志,只会将自己的日志复制到Follower中 Follower的日志可能被覆盖,常见场景:该Follower在某个term中是Leader,但是数据未...
上一篇主要介绍了事务提交的流程,得知在事务提交前会通过 waitTicket 来等待冲突检测的结果,本篇主要来理一下冲突检测如何通知到提交事务的线程,也就是一个条件变量。相似地,我们还是先来理一下几个...
上一个简析主要介绍了MGR的插件注册、调用流程,这篇文章会主要记录一下MGR中几个关键模块的梳理,便于后续将它们串联起来。 各种类用途 Continuation Continuation 其实是一个 ...
这段时间在准备17号技术大会的技术分享,第一次在那么大的场合进行分享,还是有点紧张的,所以做了不少准备。但是说实话,双主解决方案只要没有涉及到冲突解决的,实现就那么回事,没有什么太大的技术含量。在方案...
在应用层,关于锁的使用大家应该都很熟悉了,作用就是为了保护共享变量不被同时操作而导致无法预测的情况。然而深入到具体实现,锁仅仅只是锁定临界区吗? 锁的实现其实还必须实现一个语义,也就是内存屏障。内存屏...
最近遇到一个很奇怪的问题,在线下调试很正常,但是到测试环境后, watch 后发现一直报 The event in requested index is outdated and cleared 错误...
后端已经有golang的模板渲染,后来自己又大概学了下vue,看了一会会就动手写了,感觉还是挺简单的,虽然我不是前端:) 安装 安装很简单,基本就是以下几步: 安装node.js,同时最好安装cnpm...