首页 > 体育 >

分布式强一致性数据库的灵魂-Raft 算法(4)

2018-06-01 22:14:30 网络整理 阅读:70 评论:0

正常的Raft流程中,客户端事先给Leader写入数据,Leader处理后会追加到log中,追加成功后Replication到其他节点中,­当Leader发现log被整个集群大多数节点接收后就会进行Apply。

这样的一个过程其实是非常低效的,所以就需要引入Pipeline,它可以将多个请求进行并发处理,有效提高效率。

Batch

通常情况下接收到的客户端请求都是依次过来的,而当有一批请求过来的时候,就可以通过Batch将这些请求打包成一个Raft log发送出去。Multi-Raft

当目前的Raft Group无法支撑所有的数据的时候,就需要引入Multi-Raft处理数据,第一种做法是将数据切分成多个Raft Group分担到不同的机器上。

为了应对更复杂的情况就需要使用动态分裂的方法,假设最开始的只有3台机器以及一个Region,这个Region就布置在一台机器上,所有的数据都写入这台机器,当数据量达到某个预值后Region就产生分裂,得到的新的Region就可以移植到新的机器上

祝大家儿童节快乐哈!!如果对java微服务、分布式、高并发、高可用、大型互联网架构技术、面试经验交流。感兴趣可以关注我的头条号,我会在微头条不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。欢迎分享,欢迎评论,欢迎转发

相关文章