Skip to content
刘禄恒 edited this page Mar 17, 2018 · 1 revision

Communication use npl_mod/Raft/Rpc.lua,

  • RaftRequestRPC is used in Raft level, see RpcListener:startListening and PeerServer:SendRequest.
  • RTDBRequestRPC in TableDB level, see RaftTableDBStateMachine:start, RaftClient:tryCurrentLeader, RaftTableDBStateMachine:start2 and setupRPC in RaftSqliteStore.

They are both used in a Full Duplex way, that is, they are not only used to send request but also recv response, each side need to install the RPC.

RTDBRequestRPC

for normal tabledb ops, RTDBRequestRPC send RaftMessageType.ClientRequest to the server.

client RPC retry and failover

refer to kudu design doc

Clone this wiki locally