private void updateCounters(Map<MemberId, Integer> counters) { for (Map.Entry<MemberId, Integer> entry : counters.entrySet()) { this.counters.compute(entry.getKey(), (key, value) -> { if (value == null || value < entry.getValue()) { return entry.getValue(); } return value; }); } updateTerm(currentTerm()); }
/** * Increments and returns the current term. * * @return the current term */ private long incrementTerm() { counters.compute(clusterMembershipService.getLocalMember().id(), (id, value) -> value != null ? value + 1 : 1); broadcastCounters(); return currentTerm(); }
&& Objects.equals(currentTerm.primary(), primary) && Objects.equals(currentTerm.candidates(), candidates) ? currentTerm() : incrementTerm();