public void convict(InetAddress endpoint, double phi) { if (!neighbor.equals(endpoint)) return; // We want a higher confidence in the failure detection than usual because failing a repair wrongly has a high cost. if (phi < 2 * DatabaseDescriptor.getPhiConvictThreshold()) return; Exception exception = new IOException(String.format("Endpoint %s died during anti-compaction.", endpoint)); if (maybeSetException(exception)) { // Though unlikely, it is possible to arrive here multiple time and we want to avoid print an error message twice logger.error("[repair #{}] Endpoint {} died during anti-compaction", endpoint, parentSession, exception); } } }
public void convict(InetAddress endpoint, double phi) { if (!neighbor.equals(endpoint)) return; // We want a higher confidence in the failure detection than usual because failing a repair wrongly has a high cost. if (phi < 2 * DatabaseDescriptor.getPhiConvictThreshold()) return; Exception exception = new IOException(String.format("Endpoint %s died during anti-compaction.", endpoint)); if (maybeSetException(exception)) { // Though unlikely, it is possible to arrive here multiple time and we want to avoid print an error message twice logger.error("[repair #{}] Endpoint {} died during anti-compaction", endpoint, parentSession, exception); } } }
public void convict(InetAddress endpoint, double phi) { if (!neighbor.equals(endpoint)) return; // We want a higher confidence in the failure detection than usual because failing a repair wrongly has a high cost. if (phi < 2 * DatabaseDescriptor.getPhiConvictThreshold()) return; Exception exception = new IOException(String.format("Endpoint %s died during anti-compaction.", endpoint)); if (maybeSetException(exception)) { // Though unlikely, it is possible to arrive here multiple time and we want to avoid print an error message twice logger.error("[repair #{}] Endpoint {} died during anti-compaction", endpoint, parentSession, exception); } } }
public void run() { if (FailureDetector.instance.isAlive(neighbor)) { AnticompactionRequest acr = new AnticompactionRequest(parentSession, successfulRanges); CassandraVersion peerVersion = SystemKeyspace.getReleaseVersion(neighbor); if (peerVersion != null && peerVersion.compareTo(VERSION_CHECKER) > 0) { MessagingService.instance().sendRR(acr.createMessage(), neighbor, new AnticompactionCallback(this), TimeUnit.DAYS.toMillis(1), true); } else { // immediately return after sending request MessagingService.instance().sendOneWay(acr.createMessage(), neighbor); maybeSetResult(neighbor); } } else { maybeSetException(new IOException(neighbor + " is down")); } }
public void run() { if (FailureDetector.instance.isAlive(neighbor)) { AnticompactionRequest acr = new AnticompactionRequest(parentSession, successfulRanges); CassandraVersion peerVersion = SystemKeyspace.getReleaseVersion(neighbor); if (peerVersion != null && peerVersion.compareTo(VERSION_CHECKER) > 0) { MessagingService.instance().sendRR(acr.createMessage(), neighbor, new AnticompactionCallback(this), TimeUnit.DAYS.toMillis(1), true); } else { // immediately return after sending request MessagingService.instance().sendOneWay(acr.createMessage(), neighbor); maybeSetResult(neighbor); } } else { maybeSetException(new IOException(neighbor + " is down")); } }
public void run() { if (FailureDetector.instance.isAlive(neighbor)) { AnticompactionRequest acr = new AnticompactionRequest(parentSession, successfulRanges); CassandraVersion peerVersion = SystemKeyspace.getReleaseVersion(neighbor); if (peerVersion != null && peerVersion.compareTo(VERSION_CHECKER) > 0) { MessagingService.instance().sendRR(acr.createMessage(), neighbor, new AnticompactionCallback(this), TimeUnit.DAYS.toMillis(1), true); } else { // immediately return after sending request MessagingService.instance().sendOneWay(acr.createMessage(), neighbor); maybeSetResult(neighbor); } } else { maybeSetException(new IOException(neighbor + " is down")); } }