RPC - NPLPackages/TableDB GitHub Wiki
Communication use npl_mod/Raft/Rpc.lua,
RaftRequestRPCis used in Raft level, seeRpcListener:startListeningandPeerServer:SendRequest.RTDBRequestRPCin TableDB level, seeRaftTableDBStateMachine:start,RaftClient:tryCurrentLeader,RaftTableDBStateMachine:start2andsetupRPCin 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