Raft实现日志-同步RPC设计

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Raft实现日志-同步RPC设计

Raft实现日志-同步RPC设计

今天来介绍一下leader用来复制日志条目,以及发送心跳的RPC如何设计

AppendEntries RPC

Arguments

  • term: leader的任期
  • leaderID: follower可以将客户端请求重定向到leader
  • prevLogIndex: 新日志条目的上一条条目索引
  • prevLogTerm: 上条日志条目的任期
  • entries[]: 用于存储日志条目(通过空列表来代表这是一条心跳RPC)
  • leaderCommit: leader的提交index

Results

  • term: 当前任期,leader通过该参数更新自己
  • success: 返回true如果follower包含的日志条目匹配了上一条日志条目的索引和上条日志条目所在任期

接收端需要的实现:

  1. 返回false如果请求的term < currentTerm, follower发现请求的RPC的任期小于自己的任期索引,会认为leader已经过期了。
  2. 返回false如果log不包含上条日志,也就是说同步日志的RPC跟follower存的log不匹配。
  3. 如果已经存在的日志条目与新的冲突了(索引一致但任期不一致)则删除已存在的日志
  4. 需要接受所有新的不包含在log里的条目
  5. 如果leaderCommit > commitIndex,commitIndex=min(leaderCommit, index of last new entry)

之后的更新计划

因为之前已经分析了很多种情况,都记录在其他文章里了,RPC为什么要这么实现的理由,之后会添加一下链接,方便查看


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
20天前
|
存储 数据采集 监控
阿里云DTS踩坑经验分享系列|SLS同步至ClickHouse集群
作为强大的日志服务引擎,SLS 积累了用户海量的数据。为了实现数据的自由流通,DTS 开发了以 SLS 为源的数据同步插件。目前,该插件已经支持将数据从 SLS 同步到 ClickHouse。通过这条高效的同步链路,客户不仅能够利用 SLS 卓越的数据采集和处理能力,还能够充分发挥 ClickHouse 在数据分析和查询性能方面的优势,帮助企业显著提高数据查询速度,同时有效降低存储成本,从而在数据驱动决策和资源优化配置上取得更大成效。
115 9
|
6月前
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之pyodps的线程限制是什么意思
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
6月前
|
DataWorks 数据可视化 安全
DataWorks产品使用合集之SLS日志中新增了存在iotId这个字段,同步的时候怎么手动增加
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
SQL 存储 关系型数据库
Mysql主从同步 清理二进制日志的技巧
Mysql主从同步 清理二进制日志的技巧
34 1
|
7月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之从Oracle数据库同步数据时,checkpoint恢复后无法捕获到任务暂停期间的变更日志,如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
共识协议的技术变迁问题之Raft协议中的日志复制如何解决
共识协议的技术变迁问题之Raft协议中的日志复制如何解决
|
7月前
|
定位技术 调度
自定义同步日志系统
自定义同步日志系统
44 2
|
6月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何同步SLS日志到odps上
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
7月前
|
C++
闪退日志的同步写入文件记录
闪退日志的同步写入文件记录
40 0
|
7月前
|
SQL 关系型数据库 数据库
实时计算 Flink版产品使用合集之同步PostgreSQL数据时,WAL 日志无限增长,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。