@Override public Optional<HostAndPort> getSuspectedLeaderInMemory() { Optional<PingableLeader> maybeLeader = getSuspectedLeader(false /* use network */); if (!maybeLeader.isPresent()) { return Optional.empty(); } return Optional.of(otherPotentialLeadersToHosts.get(maybeLeader.get())); }
private boolean pingLeader() { Optional<PingableLeader> maybeLeader = getSuspectedLeader(true /* use network */); if (!maybeLeader.isPresent()) { return false; } final PingableLeader leader = maybeLeader.get(); MultiplexingCompletionService<PingableLeader, Boolean> multiplexingCompletionService = MultiplexingCompletionService.create(leaderPingExecutors); multiplexingCompletionService.submit(leader, leader::ping); try { Future<Boolean> pingFuture = multiplexingCompletionService.poll( leaderPingResponseWaitMs, TimeUnit.MILLISECONDS); return getAndRecordLeaderPingResult(pingFuture); } catch (InterruptedException ex) { return false; } }
@Override public Optional<HostAndPort> getSuspectedLeaderInMemory() { Optional<PingableLeader> maybeLeader = getSuspectedLeader(false /* use network */); if (!maybeLeader.isPresent()) { return Optional.empty(); } return Optional.of(otherPotentialLeadersToHosts.get(maybeLeader.get())); }
private boolean pingLeader() { Optional<PingableLeader> maybeLeader = getSuspectedLeader(true /* use network */); if (!maybeLeader.isPresent()) { return false; } final PingableLeader leader = maybeLeader.get(); MultiplexingCompletionService<PingableLeader, Boolean> multiplexingCompletionService = MultiplexingCompletionService.create(leaderPingExecutors); multiplexingCompletionService.submit(leader, leader::ping); try { Future<Boolean> pingFuture = multiplexingCompletionService.poll( leaderPingResponseWaitMs, TimeUnit.MILLISECONDS); return getAndRecordLeaderPingResult(pingFuture); } catch (InterruptedException ex) { return false; } }