private Task <(long Index, object Result)> UpdateTopology(UpdateTopologyCommand cmd) { if (_engine.LeaderTag != _server.NodeTag) { throw new NotLeadingException("This node is no longer the leader, so we abort updating the database topology"); } return(_engine.PutAsync(cmd)); }
protected async Task <long> IssueCommandsAndWaitForCommit(RachisConsensus <CountingStateMachine> leader, int numberOfCommands, string name, int value) { Assert.True(leader.CurrentState == RachisState.Leader || leader.CurrentState == RachisState.LeaderElect, "Can't append commands from non leader"); using (leader.ContextPool.AllocateOperationContext(out TransactionOperationContext context)) { for (var i = 0; i < 3; i++) { await leader.PutAsync(new TestCommand { Name = name, Value = value }); } using (context.OpenReadTransaction()) return(leader.GetLastEntryIndex(context)); } }
protected List <Task> IssueCommandsWithoutWaitingForCommits(RachisConsensus <CountingStateMachine> leader, int numberOfCommands, string name, int value) { List <Task> waitingList = new List <Task>(); for (var i = 0; i < numberOfCommands; i++) { var task = leader.PutAsync(new TestCommand { Name = name, Value = value }); waitingList.Add(task); } return(waitingList); }
protected List <Task> IssueCommandsWithoutWaitingForCommits(RachisConsensus <CountingStateMachine> leader, int numberOfCommands, string name, int value) { Assert.True(leader.CurrentState == RachisState.Leader, "Can't append commands from non leader"); List <Task> waitingList = new List <Task>(); using (leader.ContextPool.AllocateOperationContext(out TransactionOperationContext context)) { for (var i = 0; i < 3; i++) { waitingList.Add(leader.PutAsync(new TestCommand { Name = name, Value = value })); } } return(waitingList); }