Example #1
0
func (i *instance) TwoATxnVotesReceived(request *msgs.TxnVoteAcceptRequest) (accepted bool, rejected bool) {
	roundNumber := paxosNumber(request.RoundNumber())
	if roundNumber == i.acceptedNum && i.accepted != nil {
		// duplicate 2a. Don't issue any response.
		return
	} else if roundNumber == i.promiseNum || i.promiseNum == 0 {
		i.promiseNum = roundNumber
		i.acceptedNum = roundNumber
		ballot := request.Ballot()
		i.accepted = &ballot
		accepted = true
		return
	} else {
		rejected = true
		return
	}
}