Documentation
¶
Overview ¶
primary implement logic of a primary in VR.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddIncomingReq ¶
AddIncomingReq adds a vrrpc.Request to incomingReqs queue.
func ProcessIncomingReqs ¶
ProcessIncomingReqs takes requests from incomingReqs queue and processes them. Note: This function is going to be the bottleneck because it has to block for each request. It cannot delegate waiting for backup replies to other threads, because later requests from the same client can reset globals.ClientTable while previous ones are still on the fly. The best solution is to create a per-client incoming request queue. This ensures linearizability.
func RegisterView ¶
func RegisterView(rcvr vrrpc.ViewService) error
RegisterView registers a View RPC receiver.
func RegisterVrgo ¶
func RegisterVrgo(rcvr vrrpc.VrgoService) error
RegisterVrgo registers a Vrgo RPC receiver.
Types ¶
type ClientRequest ¶
ClientRequest represents the in-memory state of a client request in the primary.