public static boolean isWatchDog( SystemAdvertisement sysAdv ) { GMSMember member = getGMSMember( sysAdv ); return GroupManagementService.MemberType.WATCHDOG.toString().equalsIgnoreCase( member.getMemberType() ); }
public static boolean isWatchDog( SystemAdvertisement sysAdv ) { GMSMember member = getGMSMember( sysAdv ); return GroupManagementService.MemberType.WATCHDOG.toString().equalsIgnoreCase( member.getMemberType() ); }
for (SystemAdvertisement systemAdvertisement : view.getView()) { advert = systemAdvertisement; member = Utility.getGMSMember(advert); member.setSnapShotId(view.getClusterViewId()); sb.append(++count)
for (SystemAdvertisement systemAdvertisement : view.getView()) { advert = systemAdvertisement; member = Utility.getGMSMember(advert); member.setSnapShotId(view.getClusterViewId()); sb.append(++count)
private void addInDoubtMemberSignals(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final GMSMember member = Utility.getGMSMember(advert); final String token = member.getMemberToken(); getGMSContext().addToSuspectList(token); logger.log(Level.INFO, "gms.failureSuspectedEventReceived", new Object[]{token, groupName}); signals.add(new FailureSuspectedSignalImpl(token, member.getGroupName(), member.getStartTime())); }
private void addInDoubtMemberSignals(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final GMSMember member = Utility.getGMSMember(advert); final String token = member.getMemberToken(); getGMSContext().addToSuspectList(token); logger.log(Level.INFO, "gms.failureSuspectedEventReceived", new Object[]{token, groupName}); signals.add(new FailureSuspectedSignalImpl(token, member.getGroupName(), member.getStartTime())); }
GMSMember member = Utility.getGMSMember(myAdv); LOG.config("MySystemAdvertisement(summary): " + member.toString() + " ID:" + myAdv.getID().toString()
private void newViewObserved(final EventPacket packet) { final GMSMember member = Utility.getGMSMember(packet.getSystemAdvertisement()); synchronized (views) { views.add(Collections.unmodifiableList(getMemberTokens(packet))); if (views.size() > MAX_VIEWS) { views.remove(0); } logger.log(Level.INFO, "membership.snapshot.analysis", new Object[]{packet.getClusterViewEvent().toString(), member.getMemberToken(), member.getGroupName()}); Signal[] activeSignals = analyzeViewChange(packet); if (activeSignals.length != 0) { getGMSContext().getRouter().queueSignals(new SignalPacket(activeSignals)); } } }
private void newViewObserved(final EventPacket packet) { final GMSMember member = Utility.getGMSMember(packet.getSystemAdvertisement()); synchronized (views) { views.add(Collections.unmodifiableList(getMemberTokens(packet))); if (views.size() > MAX_VIEWS) { views.remove(0); } logger.log(Level.INFO, "membership.snapshot.analysis", new Object[]{packet.getClusterViewEvent().toString(), member.getMemberToken(), member.getGroupName()}); Signal[] activeSignals = analyzeViewChange(packet); if (activeSignals.length != 0) { getGMSContext().getRouter().queueSignals(new SignalPacket(activeSignals)); } } }
private void addReadyMembers(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final String token = advert.getName(); final GMSMember member = Utility.getGMSMember(advert); if (member.isCore()) { addJoinedAndReadyNotificationSignal(token, member.getGroupName(), member.getStartTime()); } }
private void addReadyMembers(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final String token = advert.getName(); final GMSMember member = Utility.getGMSMember(advert); if (member.isCore()) { addJoinedAndReadyNotificationSignal(token, member.getGroupName(), member.getStartTime()); } }
return; final GMSMember watchdogMember = Utility.getGMSMember(fromAdv); if (!watchdogMember.isWatchDog()) { LOG.fine("ignoring WATCHDOG_NOTIFICATION from member:" + watchdogMember.getMemberToken() + " of group " +
private void addFailureSignals(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final GMSMember member = Utility.getGMSMember(advert); final String failedMember = member.getMemberToken(); if (member.getMemberType().equalsIgnoreCase(CORETYPE)) { List<GMSMember> previousView = getPreviousViewContaining(failedMember); logger.log(Level.INFO, "member.failed", new Object[]{failedMember, member.getGroupName()}); generateFailureRecoverySignals(previousView, failedMember, member.getGroupName(), member.getStartTime()); if (getGMSContext().getRouter().isFailureNotificationAFRegistered()) { signals.add(new FailureNotificationSignalImpl(failedMember, member.getGroupName(), member.getStartTime())); } if (logger.isLoggable(Level.FINE)){ logger.fine("removing newly added node from the suspected list..." + failedMember); } getGMSContext().removeFromSuspectList(failedMember); } }
private void addFailureSignals(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final GMSMember member = Utility.getGMSMember(advert); final String failedMember = member.getMemberToken(); if (member.getMemberType().equalsIgnoreCase(CORETYPE)) { List<GMSMember> previousView = getPreviousViewContaining(failedMember); logger.log(Level.INFO, "member.failed", new Object[]{failedMember, member.getGroupName()}); generateFailureRecoverySignals(previousView, failedMember, member.getGroupName(), member.getStartTime()); if (getGMSContext().getRouter().isFailureNotificationAFRegistered()) { signals.add(new FailureNotificationSignalImpl(failedMember, member.getGroupName(), member.getStartTime())); } if (logger.isLoggable(Level.FINE)){ logger.fine("removing newly added node from the suspected list..." + failedMember); } getGMSContext().removeFromSuspectList(failedMember); } }
private void analyzeMasterChangeView(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final GMSMember member = Utility.getGMSMember( advert ); final String token = member.getMemberToken(); if ( !this.getGMSContext().isWatchdog() ) { addGroupLeadershipNotificationSignal( token, member.getGroupName(), member.getStartTime() ); } if (views.size() == 1 && ! getGMSContext().getGroupCommunicationProvider().isDiscoveryInProgress()) { //views list only contains 1 view which is assumed to be the 1st view. addNewMemberJoins(packet); } if (views.size() > 1 && packet.getClusterView().getSize() != getPreviousView().size()) { determineAndAddNewMemberJoins(); } }
/** * Adds a list of advertisements to the view * * @param newView list of advertisements * @param cvEvent the cluster event * @param authoritative whether the view is authoritative or not */ void addToView(final List<SystemAdvertisement> newView, final boolean authoritative, final ClusterViewEvent cvEvent) { //TODO: need to review the use cases of the callers of method if (cvEvent == null) { return; } if (authoritative) { ClusterViewEvents event = cvEvent.getEvent(); boolean changed = addToView( newView ); if (changed || event != ClusterViewEvents.ADD_EVENT) { //only if there are changes that we notify notifyListeners(cvEvent); } else { GMSMember member = Utility.getGMSMember(cvEvent.getAdvertisement()); LOG.log(Level.INFO, "mgmt.clusterviewmanager.skipnotify", new Object[]{cvEvent.getEvent(), member.getMemberToken() , member.getGroupName()}); } } }
/** * Adds a list of advertisements to the view * * @param newView list of advertisements * @param cvEvent the cluster event * @param authoritative whether the view is authoritative or not */ void addToView(final List<SystemAdvertisement> newView, final boolean authoritative, final ClusterViewEvent cvEvent) { //TODO: need to review the use cases of the callers of method if (cvEvent == null) { return; } if (authoritative) { ClusterViewEvents event = cvEvent.getEvent(); boolean changed = addToView( newView ); if (changed || event != ClusterViewEvents.ADD_EVENT) { //only if there are changes that we notify notifyListeners(cvEvent); } else { GMSMember member = Utility.getGMSMember(cvEvent.getAdvertisement()); LOG.log(Level.INFO, "mgmt.clusterviewmanager.skipnotify", new Object[]{cvEvent.getEvent(), member.getMemberToken() , member.getGroupName()}); } } }
private void analyzeMasterChangeView(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final GMSMember member = Utility.getGMSMember( advert ); final String token = member.getMemberToken(); if ( !this.getGMSContext().isWatchdog() ) { addGroupLeadershipNotificationSignal( token, member.getGroupName(), member.getStartTime() ); } if (views.size() == 1 && ! getGMSContext().getGroupCommunicationProvider().isDiscoveryInProgress()) { //views list only contains 1 view which is assumed to be the 1st view. addNewMemberJoins(packet); } if (views.size() > 1 && packet.getClusterView().getSize() != getPreviousView().size()) { determineAndAddNewMemberJoins(); } }
private void addNewMemberJoins(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final GMSMember member = Utility.getGMSMember(advert); final String token = member.getMemberToken(); final List<String> oldMembers = getTokens(getPreviousView()); RejoinSubevent rjse = getGMSContext().getInstanceRejoins().get(packet.getSystemAdvertisement().getName()); if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "addNewMemberJoins: member: " + member + " joined group time:" + new Date(Utility.getStartTime(advert)) + " rejoin subevent=" + rjse); } // Series of checks needed to avoid duplicate ADD messages. // This conditional was added to avoid duplicate ADD events caused // by GroupLeaderShip change notifications. // The coordinator handles ADD event differently than all other members. // Lastly, this instance is always added to view so let ADD event through w/o check for this instance. if (isCoordinator() || ! oldMembers.contains(token) || rjse != null || token.compareTo(getGMSContext().getServerIdentityToken()) == 0) { if (packet.getClusterView().getSize() > 1) { // TODO: Figure out a better way to sync syncDSC(advert.getID()); } if (member.isCore()) { addJoinNotificationSignal(token, member.getGroupName(), member.getStartTime()); } } }
private void addNewMemberJoins(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final GMSMember member = Utility.getGMSMember(advert); final String token = member.getMemberToken(); final List<String> oldMembers = getTokens(getPreviousView()); RejoinSubevent rjse = getGMSContext().getInstanceRejoins().get(packet.getSystemAdvertisement().getName()); if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "addNewMemberJoins: member: " + member + " joined group time:" + new Date(Utility.getStartTime(advert)) + " rejoin subevent=" + rjse); } // Series of checks needed to avoid duplicate ADD messages. // This conditional was added to avoid duplicate ADD events caused // by GroupLeaderShip change notifications. // The coordinator handles ADD event differently than all other members. // Lastly, this instance is always added to view so let ADD event through w/o check for this instance. if (isCoordinator() || ! oldMembers.contains(token) || rjse != null || token.compareTo(getGMSContext().getServerIdentityToken()) == 0) { if (packet.getClusterView().getSize() > 1) { // TODO: Figure out a better way to sync syncDSC(advert.getID()); } if (member.isCore()) { addJoinNotificationSignal(token, member.getGroupName(), member.getStartTime()); } } }