-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Streaming-AppendEntries #672
Comments
先占个坑,对这个感兴趣。 |
对这个感兴趣 |
第一个子任务是你的了,感谢 |
你从第二个子任务开始?哈哈 |
来晚了一步.. 请问第三个子任务的坑还能占不hh |
哈哈,当然可以,一起搞吧 |
感谢大佬!!!! |
抱歉,目前由于工作原因,最近没有时间搞这个 |
好的,没问题。剩下的我们来完成吧 |
@horizonzy 大佬, 方便加个好友或者给个联系方式吗? |
@horizonzy @hzh0425 给你们俩拉个群 |
这个事情我觉的可以启动下,我们可以在开发这群里讨论下 |
请问这个任务还可以领取吗 |
欢迎。 |
@horizonzy 请问我需要怎么做呢,我需要把自己的想法写在这里然后进行评估吗,或者有没有对应的群呢,也许会碰到一些问题 |
可以在 slack 上交流。 |
背景:
目前 jraft 日志复制基于普通 RPC 的一请求一响应模型,在 RPC 层之上实现了日志的 pipeline 复制,这给上层带来了复杂的控制逻辑,比如要绑定线程以保证发送和接收顺序,要维护一个 inflights FIFO 队列来保证顺序,我们还为此专门实现了一个
MpscSingleThreadExecutor
(多生产者单消费者线程池)来提高性能,等等,以上种种,核心原因还是因为受到一请求一响应的模型
的约束从而带来的实现复杂度。目标:
当前,jraft 有一层 rpc 层的抽象层,并且在去年我们也支持了 grpc,所以我们是否可以利用 grpc 的 streaming 来实现一个新的 AppendEntries,如果抛开一请求一相应的模型,可能有如下好处:
我们需要做什么?
这个任务需要拆开为多个子任务,可能由多个人来实现,目前我们可以先尝试完成第一个任务,后面的任务需要更多细节设计,还需要再考虑。
RpcClient
,RpcServer
),然后基于 grpc 实现之,对于 bolt 我们可以选择暂时不支持该能力,我觉得这可以作为一个新手任务,欢迎大家认领Replicator
,将现有的 Replicator 作为默认的一种实现The text was updated successfully, but these errors were encountered: