public ClientResponse Command(ClientReqeust reqeust) { ClientResponse response = new ClientResponse(); LogEntry logEntry = new LogEntry { Command = reqeust.Command, Index = _stateController.PersistentState.LastLogIndex + 1, Term = _stateController.PersistentState.CurrentTerm }; _uncommittiedLogs.Add(logEntry); return(response); }
public ClientResponse ClientInvoke(ClientReqeust request) { lock (this) { if (_node.CurrentRole.Type == RoleType.Follower) { Follower follower = (Follower)_node.CurrentRole; //todo rediret request to leader node IHost _host = _node.Peers[0].RemoteClient; return(_host.ClientInvoke(request)); } return((_node.CurrentRole as Leader).Command(request)); } }