Skip to content

jraft 是否考虑支持 Quiescent Raft Groups #1221

@wangyu096

Description

@wangyu096

Your question

Quiescent raft group :

一个 Raft Group 长时间无写操作(即所有副本都是同步的,并且没有新的客户端请求),它们可以进入“休眠”状态。

领导者(Leader)和追随者(Follower)减少或停止周期性的心跳包和状态同步。
唤醒机制:一旦有新的读写请求或配置变更等事件,马上唤醒全部 Peer,恢复正常活动。
主要目的: 降低资源消耗(网络+CPU),尤其是大规模部署下的小 Partition/Region。减少无效通讯。

问题:
目前jraft的心跳、选举都是通过内部定时器驱动的,应用方无法定制。是否考虑类似 etcd/raft, 提供 tick 等方法,由应用心跳/触发选举。

Image

Your scenes

类似与 tikv 的 hibernate-regions 特性
https://docs.pingcap.com/zh/tidb/stable/tikv-configuration-file/#hibernate-regions

我的应用中存在大量的 raft group, 大概 100 万以上。大部分 raft group 是处于“静默”状态。只有写请求 raft group 才需要被唤醒,重新触发心跳;读请求直接读取 leader/follower 即可,无需唤醒

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions