stateIs0/lu-raft-kv

这个实现接收客户端请求的处理过程是串行的

Opened this issue · 1 comments

这个实现接收客户端请求的处理过程是串行的 ,而且每一次处理都会多次写db, 这个吞吐量不会很高吧,应用于生产的raft也是这么实现的吗?

感谢提出这么高质量的问题,下面是我的一些看法:

  1. 不同的客户端请求是并行处理的,因为 RPC 调用会开新线程来响应
  2. 每次处理请求都写入本地日志是为了保证一致性,可以根据业务需求对稳定性和吞吐量进行折中。如果想要提高吞吐量,可以让跟随者在处理 appendEntries 的时候只把日志写入内存,并由后台线程定期将内存里的日志写进磁盘。