Raft协议--日志压缩--05

本文概述了Raft协议中的日志压缩策略,包括如何通过定期snapshot来管理日志,快照内容(元数据和系统状态),发送快照的时机和注意事项。特别强调了如何平衡频率与性能,以及利用copy-on-write技术减少对同步的影响。
摘要由CSDN通过智能技术生成

一、日志压缩

  1. 在实际的系统中,不能让日志无限增长。Raft采用对整个系统进行snapshot来解决,snapshot之前的日志都丢弃。

  2. 每个副本独立的对自己的系统状态进行snapshot,并且只能对已经提交的日志记录进行snapshot。

在这里插入图片描述

二、Snapshot中包含以下内容

  1. 日志元数据

  2. 最后一条已提交的log entry的log index和term。

    1. 这两个值在snapshot之后的第一条log entry的AppendEntries RPC的完整性检查的时候会被用上。
  3. 系统当前状态。

三、发送快照的时机

  1. 当Leader要发给某个日志落后太多的Follower的log entry被丢弃,Leader会将snapshot发给Follower。
  2. 当新加进一台机器时,也会发送snapshot给它。
  3. 发送snapshot使用InstalledSnapshot RPC。

四、快照注意点

  1. 做snapshot不要做的太频繁,会消耗磁盘带宽
  2. 做snapshot不要太不频繁,否则一旦节点重启需要回放大量日志,影响可用性。
  3. 推荐当日志达到某个固定的大小做一次snapshot。
  4. 做一次snapshot可能耗时过长,会影响正常日志同步。
    1. 可以通过使用copy-on-write技术避免snapshot过程影响正常日志同步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值