/** Checks if the DFOs associated with logical node list are currently empty. */ boolean areDFOsEmpty(Collection<LogicalNode> lns) { for (LogicalNode n : lns) { DiskFailoverManager dfo = FlumeNode.getInstance().getDFOManager(n.getName()); if (!dfo.isEmpty()) return false; } return true; }
boolean areDFOsReconfigured(Collection<LogicalNode> lns) { for (LogicalNode n : lns) { long val = n.getMetrics().getLongMetric(LogicalNode.A_RECONFIGURES); if (val == 0) { return false; } } return true; }
/** * 여기에 위치하는게 맞나? * * @throws IOException * @throws InterruptedException * @throws RuntimeException * @throws FlumeSpecException */ public void recover() throws IOException, InterruptedException, RuntimeException, FlumeSpecException { LogicalNode logicalNode = FlumeNode.getInstance().getLogicalNodeManager().get(logicalNodeName); if (logicalNode == null) { log.error("Failed recover [" + logicalNodeName + "] is not registed in CheckpointManager"); return; } log.info("Closing logicalNode[" + logicalNodeName + "]"); logicalNode.close(); log.info("Closed logicalNode[" + logicalNodeName + "]"); log.info("Restarting LogicalNode [" + logicalNodeName + "]"); logicalNode.restartNode(); log.info("Finished LogicalNode [" + logicalNodeName + "]"); }