new ClusterChangeMediator(_helixExternalViewBasedRouting, _tableQueryQuotaManager, _brokerServerBuilder.getBrokerMetrics()); _spectatorHelixManager.addExternalViewChangeListener(clusterChangeMediator); _spectatorHelixManager.addInstanceConfigChangeListener(clusterChangeMediator); _spectatorHelixManager.addLiveInstanceChangeListener(_liveInstancesListener);
public void start() throws Exception { trackEnabled = true; _manager.addIdealStateChangeListener(this); _manager.addExternalViewChangeListener(this); }
@Transition(to = "LEADER", from = "STANDBY") public void onBecomeLeaderFromStandby(Message message, NotificationContext context) throws Exception { LOG.info("Become LEADER from STANDBY"); HelixManager manager = context.getManager(); if (manager == null) { throw new IllegalArgumentException("Require HelixManager in notification conext"); } for (ChangeType notificationType : _notificationTypes) { if (notificationType == ChangeType.LIVE_INSTANCE) { manager.addLiveInstanceChangeListener(_particHolder); } else if (notificationType == ChangeType.CONFIG) { manager.addConfigChangeListener(_particHolder); } else if (notificationType == ChangeType.EXTERNAL_VIEW) { manager.addExternalViewChangeListener(_particHolder); } else { LOG.error("Unsupport notificationType:" + notificationType.toString()); } } }
@Transition(to = "LEADER", from = "STANDBY") public void onBecomeLeaderFromStandby(Message message, NotificationContext context) throws Exception { LOG.info("Become LEADER from STANDBY"); HelixManager manager = context.getManager(); if (manager == null) { throw new IllegalArgumentException("Require HelixManager in notification conext"); } for (ChangeType notificationType : _notificationTypes) { if (notificationType == ChangeType.LIVE_INSTANCE) { manager.addLiveInstanceChangeListener(_particHolder); } else if (notificationType == ChangeType.CONFIG) { manager.addConfigChangeListener(_particHolder); } else if (notificationType == ChangeType.EXTERNAL_VIEW) { manager.addExternalViewChangeListener(_particHolder); } else { LOG.error("Unsupport notificationType:" + notificationType.toString()); } } }
public FileStoreStateModel(HelixManager manager, String resource, String partition) { String clusterName = manager.getClusterName(); String instanceName = manager.getInstanceName(); instanceConfig = manager.getClusterManagmentTool().getInstanceConfig(clusterName, instanceName); replicator = new Replicator(instanceConfig, resource, partition); try { manager.addExternalViewChangeListener(replicator); } catch (Exception e) { e.printStackTrace(); } _partition = partition; _serverId = instanceName; }
public void start() { try { HelixManager manager = HelixManagerFactory.getZKHelixManager(clusterName, null, InstanceType.SPECTATOR, zkConnectString); manager.connect(); manager.addExternalViewChangeListener(_routingTableProvider); } catch (Exception e) { e.printStackTrace(); } } }
@Test public void TestSpectator() throws Exception { HelixManager relayHelixManager = HelixManagerFactory.getZKHelixManager(CLUSTER_NAME, null, InstanceType.SPECTATOR, ZK_ADDR); relayHelixManager.connect(); relayHelixManager.addExternalViewChangeListener(this); _gSetupTool.addResourceToCluster(CLUSTER_NAME, "NextDB", 64, STATE_MODEL); _gSetupTool.rebalanceStorageCluster(CLUSTER_NAME, "NextDB", 3); boolean result = ClusterStateVerifier.verifyByPolling(new ClusterStateVerifier.BestPossAndExtViewZkVerifier( ZK_ADDR, CLUSTER_NAME)); Assert.assertTrue(result); Assert.assertTrue(_externalViewChanges.containsKey("NextDB")); Assert.assertTrue(_externalViewChanges.containsKey(TEST_DB)); }
public void registerWith(HelixManager helixManager) throws Exception { this.helixManager = helixManager; helixManager.addIdealStateChangeListener(this); helixManager.addInstanceConfigChangeListener(this); helixManager.addExternalViewChangeListener(this); helixManager.addLiveInstanceChangeListener(this); helixManager.addControllerListener(this); } }
case EXTERNALVIEW: try { _helixManager.addExternalViewChangeListener(this); } catch (Exception e) { shutdown();
case EXTERNALVIEW: try { _helixManager.addExternalViewChangeListener(this); } catch (Exception e) { shutdown();
@Test public void test() throws Exception { HelixManager manager = HelixManagerFactory.getZKHelixManager(CLUSTER_NAME, null, InstanceType.SPECTATOR, ZK_ADDR); manager.connect(); manager.addExternalViewChangeListener(this); manager.addIdealStateChangeListener(this); enablePersistBestPossibleAssignment(_gZkClient, CLUSTER_NAME, true); // Start half number of nodes. int i = 0; for (; i < NUM_NODE / 2; i++) { _participants.get(i).syncStart(); } int replica = 3; int partition = 30; for (String stateModel : TestStateModels) { String db = "Test-DB-" + stateModel; createResourceWithDelayedRebalance(CLUSTER_NAME, db, stateModel, partition, replica, replica, 0); } Assert.assertTrue(_clusterVerifier.verify(50000)); _startListen = true; DelayedTransition.setDelay(50); // add the other half of nodes. for (; i < NUM_NODE; i++) { _participants.get(i).syncStart(); } Assert.assertTrue(_clusterVerifier.verify(50000)); Assert.assertTrue(_testSuccess); }
@SuppressWarnings("deprecation") @Test public void testSpectator() throws Exception { Map<String, Integer> stateReachedCounts = Maps.newHashMap(); HelixManager participant = HelixManagerFactory.getZKHelixManager(_clusterName, "localhost_12918", InstanceType.PARTICIPANT, ZK_ADDR); participant.getStateMachineEngine().registerStateModelFactory("OnlineOffline", new MyStateModelFactory(stateReachedCounts)); participant.connect(); RoutingTableProvider routingTableProvider = new RoutingTableProvider(); try { HelixManager spectator = HelixManagerFactory .getZKHelixManager(_clusterName, "spectator", InstanceType.SPECTATOR, ZK_ADDR); spectator.connect(); spectator.addConfigChangeListener(routingTableProvider); spectator.addExternalViewChangeListener(routingTableProvider); Thread.sleep(1000); // Now let's stop the ZK server; this should do nothing TestHelper.stopZkServer(_zkServer); Thread.sleep(1000); // Verify routing table still works Assert.assertEquals(routingTableProvider.getInstances("resource0", "ONLINE").size(), 1); Assert.assertEquals(routingTableProvider.getInstances("resource0", "OFFLINE").size(), 0); } finally { routingTableProvider.shutdown(); } }
_manager.addExternalViewChangeListener(externviewChecker);
.getZKHelixManager(CLUSTER_NAME, "spectator", InstanceType.SPECTATOR, ZK_ADDR); _spectator.connect(); _spectator.addExternalViewChangeListener(_routingTableProvider_default); _spectator.addLiveInstanceChangeListener(_routingTableProvider_default); _spectator.addInstanceConfigChangeListener(_routingTableProvider_default);
_spectator.addExternalViewChangeListener(_routingTableProvider); _spectator.addLiveInstanceChangeListener(_routingTableProvider); _spectator.addInstanceConfigChangeListener(_routingTableProvider); _spectator_2.addExternalViewChangeListener(_routingTableProviderNoPeriodicRefresh); _spectator_2.addLiveInstanceChangeListener(_routingTableProviderNoPeriodicRefresh); _spectator_2.addInstanceConfigChangeListener(_routingTableProviderNoPeriodicRefresh); _spectator_3.addExternalViewChangeListener(_routingTableProviderLongPeriodicRefresh); _spectator_3.addLiveInstanceChangeListener(_routingTableProviderLongPeriodicRefresh); _spectator_3.addInstanceConfigChangeListener(_routingTableProviderLongPeriodicRefresh);
ZK_ADDR); _spectator.connect(); _spectator.addExternalViewChangeListener(_routingTableProvider); Thread.sleep(1000);
testHelixManager.addConfigChangeListener(testListener); testHelixManager.addIdealStateChangeListener(testListener); testHelixManager.addExternalViewChangeListener(testListener); testHelixManager.addLiveInstanceChangeListener(testListener);