恭喜 刘源远 成为 SOFAJraft 社区优秀 Committer!

118336da53126ec25e4ee82711cb8a3a.gif

4ff197f0896a2f42a5b38b896d8a54ba.png

c994abfddbdd07485c007097ddc653df.png

刘源远 @shihuili1218

 《深入理解分布式共识算法》作者  

刘源远@shihuili1218 主要研究金融、区块链领域,发表有《深入理解分布式共识算法》。

长久以来,刘源远为社区贡献良多,总结如下:

  • 让用户自定义 Closure 执行和 AppendEntry 线程池,改变线程池的行为。 

  • 提供 Raft Group 之间的线程隔离,使得程序更加健壮。 

  • 线性一致性读支持到业务请求级别,不再是全局控制,更为灵活。 

  • 提供 Release 时自动发布程序。 

  • 修复 RheaKV Leader 断连后的重试。 

  • 增加 jraft.bolt.conn.reconnect 参数,提供重连控制。

2024 年 8 月 13 日,SOFAJRaft(社区)PMC之一 冯家纯@fengjiachun 代表 SOFAJRaft(社区),宣布 刘源远 通过投票,成为社区 Committer!

35490053094f15272352c66c59b464c0.png

成员突出贡献

1. 让用户自定义 Closure 执行和 AppendEntry 线程池,改变线程池的行为。 

在 SOFAJRaft 中,Closure 和 AppendEntry 是非常关键的部分。Closure 通常用于处理客户端的请求,完成数据复制后,执行对应的回调函数;而 AppendEntry 则是用于将日志条目追加到日志中。 

默认情况下,系统会为这些操作使用固定的线程池,但固定的线程池可能并不能满足所有场景的需求,比如: 

  • 资源分配:不同的操作对 CPU、内存等资源的需求不同。如果所有操作共享同一个线程池,可能会导致资源的竞争,降低整体性能。 

  • 优先级处理:有些操作可能比其他操作更为关键,比如日志追加可能比回调执行更重要。如果能为它们分配不同的线程池,就可以更好地进行优先级管理。 

因此,允许用户自定义这些线程池,意味着用户可以根据自己的需求来配置和优化系统的性能表现。例如,可以为高优先级操作分配更多的线程,或者为耗时操作单独设置线程池,避免影响其他操作。 

2. 提供Raft Group之间的线程隔离,使得程序更加健壮。 

SOFAJRaft 集群通常由多个 Raft Group 组成,每个 Group 管理一组特定的日志和状态机。这种分离有助于提升系统的可靠性和可扩展性。 

提供 Raft Group 之间的线程隔离意味着每个 Raft Group 可以拥有独立的资源和线程池,这样一个 Group 的异常情况不会影响其他 Group 的正常运行。这种隔离设计可以提高系统的鲁棒性,增强容错能力,使系统在面对部分故障时仍能维持整体服务的可用性。 

3. 线性一致性读支持到业务请求级别,不再是全局控制,更为灵活。 

线性一致性读是 SOFAJRaft 协议的一个重要特性,确保客户端读取到的数据是一致的。然而,默认情况下,线性一致性的控制通常是全局性的,即所有的读请求都遵循同样的线性一致性策略。 

在某些业务场景中,可能并不需要所有的读请求都保持严格的线性一致性。举例来说: 

  • 某些读操作可能对一致性要求不高:比如监控数据的读取,不需要与写操作强一致性,只需保证较低的延迟即可。 

  • 有些读操作则必须确保强一致性:如金融交易系统中的余额查询,必须读取最新的、完全一致的数据。

通过支持到业务请求级别的线性一致性控制,系统能够针对不同的读请求采用不同的一致性策略。这种灵活性可以更好地满足各种业务场景的需求,提升系统的性能和响应能力。例如,对于一致性要求较低的读操作,可以使用快照或缓存数据,以减少延迟和资源消耗,而对于关键数据的读取则采用严格的线性一致性控制。

🔗 刘源远@shihuili1218 的近期 SOFAJraft Commits/PR 贡献记录如下:

https://github.com/sofastack/sofa-jraft/pull/1141

https://github.com/sofastack/sofa-jraft/pull/1140

https://github.com/sofastack/sofa-jraft/pull/1139

https://github.com/sofastack/sofa-jraft/pull/1136

……

64326a54622143193420ba41fceafde3.png

41705c819ddfa8a3bdce39004e4e113c.png

b95883c0aac0b6c3e6d245411e44e98c.png

c355438b08e53832c247c7134bb4e856.png

成员感想

作为一名开源社区的新晋 Committer,我感到无比激动和自豪。这不仅是对我过去贡献的认可,更是一种新的责任和使命。我深知,Committer 的角色意味着我将在项目的发展中扮演更加关键的角色,这既是一种荣誉,也是一种挑战。 

我深知,开源社区的成功离不开每一位贡献者的努力。作为 Committer,我将更加积极地帮助新人融入社区,解答他们的问题,并引导他们为项目做出贡献。我希望能与大家共同努力,推动项目的发展,让更多的人受益于我们的工作。 

另外,同时呼吁新同学积极参与进来,社区的友好超乎你的想象。在我的第一次 PR 中,仅仅是为一行注释增加了一个空格,所以同学们只要敢迈出第一步,社区非常欢迎。

1f7d8271d013c8c02256e2297e8648f6.png

社区同学寄语

感谢刘源远@shihuili1218 一直以来为 SOFAJraft 项目做出的巨大贡献!期待未来继续和源远一起,让 SOFAJraft 变得更好!

同时也感谢各位社区成员对 SOFAJraft 社区的贡献,也希望更多的小伙伴加入 SOFAJraft 社区,共同助力开源社区的快速发展。

欢迎「阅读原文」参与共建:

https://github.com/sofastack/sofa-jraft

266d9fc9d21f95ef6864524c6b9d27e4.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值