@VisibleForTesting public boolean isLeader() { // If helix manager is absent, then this standalone instance hence leader // .. else check if this master of cluster return !helixManager.isPresent() || helixManager.get().isLeader(); }
/** * Callback on changes in the controller */ protected void onControllerChange() { if (_helixManager.isLeader()) { if (!_amILeader) { _amILeader = true; LOGGER.info("Became leader"); onBecomingLeader(); } else { LOGGER.info("Already leader. Duplicate notification"); } } else { if (_amILeader) { _amILeader = false; LOGGER.info("Lost leadership"); onBecomingNonLeader(); } else { LOGGER.info("Already not leader. Duplicate notification"); } } }
if (this.helixManager.isPresent() && this.helixManager.get().isLeader()) { LOGGER.info("Leader notification for {} HM.isLeader {}", this.helixManager.get().getInstanceName(), this.helixManager.get().isLeader()); this.helixManager.get().isLeader()); if (this.isSchedulerEnabled) { LOGGER.info("Gobblin Service is now running in slave instance mode, disabling Scheduler.");
private static HelixManager createMockHelixManager(boolean isLeader, boolean isConnected) { HelixManager helixManager = mock(HelixManager.class); when(helixManager.isLeader()).thenReturn(isLeader); when(helixManager.isConnected()).thenReturn(isConnected); return helixManager; }
if (helixManager.get().isLeader()) { if (this.isSchedulerEnabled) { LOGGER.info("[Init] Gobblin Service is running in master instance mode, enabling Scheduler.");
_controllerMetrics.addCallbackGauge("helix.leader", () -> helixManager.isLeader() ? 1L : 0L); _controllerMetrics.addCallbackGauge("dataDir.exists", () -> new File(_config.getDataDir()).exists() ? 1L : 0L); _controllerMetrics.addCallbackGauge("dataDir.fileOpLatencyMs", () -> {
public boolean isLeader() { return _helixZkManager.isLeader(); }
try { _numLiveInstances.inc(liveInstances.size() - _numLiveInstances.getCount()); if (!_helixManager.isLeader()) { LOGGER.info("Not leader, do nothing!"); return;
public boolean isLeader() { return _helixZkManager.isLeader(); }
public boolean isLeader() { // If helix manager is absent, then this standalone instance hence leader // .. else check if this master of cluster return !helixManager.isPresent() || helixManager.get().isLeader(); }
@VisibleForTesting public boolean isLeader() { // If helix manager is absent, then this standalone instance hence leader // .. else check if this master of cluster return !helixManager.isPresent() || helixManager.get().isLeader(); }
/** * Handle leadership change. * @param changeContext notification context */ private void handleLeadershipChange(NotificationContext changeContext) { if (this.helixManager.isPresent() && this.helixManager.get().isLeader()) { LOGGER.info("Leader notification for {} HM.isLeader {}", this.helixManager.get().getInstanceName(), this.helixManager.get().isLeader()); if (this.isSchedulerEnabled) { LOGGER.info("Gobblin Service is now running in master instance mode, enabling Scheduler."); this.scheduler.setActive(true); } } else if (this.helixManager.isPresent()) { LOGGER.info("Leader lost notification for {} HM.isLeader {}", this.helixManager.get().getInstanceName(), this.helixManager.get().isLeader()); if (this.isSchedulerEnabled) { LOGGER.info("Gobblin Service is now running in slave instance mode, disabling Scheduler."); this.scheduler.setActive(false); } } }
public synchronized void rebalanceCurrentCluster(boolean onlyCheckOffline) { if (_helixManager.isLeader()) { _isLeaderCounter.inc(1 - _isLeaderCounter.getCount()); } else { LOGGER.info("Not leader, do nothing!"); return; } if (HelixUtils.liveInstances(_helixManager).isEmpty() || HelixUtils.liveInstances(_controllerHelixManager.getWorkerHelixManager().getHelixManager()).isEmpty()) { LOGGER.info("No live instances, do nothing!"); return; } LOGGER.info("onlyCheckOffline={}", onlyCheckOffline); try { _controllerHelixManager.handleLiveInstanceChange(onlyCheckOffline, false); } catch (Exception e) { LOGGER.error("Failed to handle live instance change!", e); } }
if (this.helixManager.isPresent() && this.helixManager.get().isLeader()) { LOGGER.info("Leader notification for {} HM.isLeader {}", this.helixManager.get().getInstanceName(), this.helixManager.get().isLeader()); this.helixManager.get().isLeader()); if (this.isSchedulerEnabled) { LOGGER.info("Gobblin Service is now running in slave instance mode, disabling Scheduler.");
_numLiveInstances.inc(liveInstances.size() - _numLiveInstances.getCount()); _numBlacklistedInstances.inc(excludedInstances.size() - _numBlacklistedInstances.getCount()); if (!_helixManager.isLeader()) { LOGGER.info("Not leader, do nothing!"); return;
private void setLeader(HelixManager manager) throws Exception { System.out.println("Setting controller " + manager.getInstanceName() + " as leader"); HelixDataAccessor accessor = manager.getHelixDataAccessor(); final LiveInstance leader = new LiveInstance(manager.getInstanceName()); leader.setLiveInstance(ManagementFactory.getRuntimeMXBean().getName()); leader.setSessionId(manager.getSessionId()); leader.setHelixVersion(manager.getVersion()); // Delete the current controller leader node so it will trigger leader election while (!manager.isLeader()) { accessor.getBaseDataAccessor() .remove(PropertyPathBuilder.controllerLeader(manager.getClusterName()), AccessOption.EPHEMERAL); Thread.sleep(50); } }
} else { controllerIsLeader = changeContext.getManager().isLeader();
} else { controllerIsLeader = changeContext.getManager().isLeader();