raft协议
Aiky哇
专注于数据库、go、性能优化,对待当下的态度,决定你未来的高度
展开
-
CockroachDB的raft优化
读了一下CockroachDB的16年的设计翻译,找了一些CockroachDB的raft优化方法1.选举优化,Cockroach使用随机时间,这样通信往返时间短的会更易第一个发起选举,更容易成为leader,减少了组内出现没有leader的时间2.相对于tidb的multi raft来说,多了心跳合并的优化。减少了大量耗费在心跳上的流量,我不太清楚tidb的PD模块是不是也有这个功能。原理是引入了一种Node级别的lease,只要Node级别的lease有效,那么这个Node上的所有的raft .原创 2020-10-19 14:31:45 · 882 阅读 · 0 评论 -
tidb的raft应用和优化
基于 Raft 构建弹性伸缩的存储系统的一些实践在 TiKV 中,我们选择了按 range 的 sharding 策略,每一个 range 分片我们称之为 region,因为我们需要对 scan 的支持,而且存储的数据基本是有关系表结构的,我们希望同一个表的数据尽量的在一起。另外在 TiKV 中每一个 region 采用 Raft 算法在多个物理节点上保证数据的一致性和高可用。从社区的多个 Raft 实现来看,比如 Etcd / LogCabin / Consul 基本都是单一 raft gro原创 2020-10-16 18:22:46 · 1691 阅读 · 0 评论 -
braft源码学习笔记,api介绍
ballot.h==============configuration.h变量名 类型 说明 GroupId typedefstd::string raft组名 VersionedGroupId typedefstd::string GroupId加个版本号 {group_id}_{index} =======structPeerId:=======butil::End...原创 2020-09-17 11:55:01 · 2796 阅读 · 0 评论 -
braft /docs /cn API接口使用文档(代码注释个人翻译)
接上一篇:https://blog.csdn.net/qq_35423190/article/details/108336736cli.mdhttps://github.com/baidu/braft/blob/master/docs/cn/cli.mdbraft提供了一系列API用来控制复制主或者具体节点, 可以选择在程序了调用API或者使用braft_cli来给节点发远程控制命令API// 将一个新的peer节点添加到由| conf |组成的复制组中。// 成功返回OK,否则返回原创 2020-09-01 20:08:28 · 558 阅读 · 0 评论 -
raft协议(Replicated And Fault Tolerant)初探
raft论文的英文版:https://raft.github.io/raft.pdf来源:别再怀疑自己的智商了,Raft协议本来就不好理解:https://zhuanlan.zhihu.com/p/36547283raft协议详解:https://www.jianshu.com/p/3c6a4fd6a7ccRaft协议中文翻译(2):https://blog.csdn.net/baijiwei/article/details/78760308Raft协议原理详解:https://zhua转载 2020-08-24 21:05:52 · 790 阅读 · 1 评论 -
基于braft构建服务(代码注释个人翻译)
侵删,仅供参考学习braft的官方文档jraft的官方文档个人建议,由于braft的说明文档并没有那么友好,可以先看一遍jraft的文档,两个的大致思路和一些变量名称是一样的,这样对理解braft的帮助会大一些。braft 本身并不提供server功能, 你可以将braft集成到包括brpc在内的任意编程框架中,本文主要是阐述如何在分布式Server中使用braft来构建高可用系统。具体业务如何实现一个Server,本文不在展开。Exampleserver-side code of Counte原创 2020-09-01 17:11:43 · 1504 阅读 · 2 评论