pivotal-jbarrett commented on a change in pull request #6037:
URL: https://github.com/apache/geode/pull/6037#discussion_r580563551



##########
File path: 
geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java
##########
@@ -1231,23 +1197,16 @@ public void shutdownMessageReceived(ID id, String 
reason) {
     if (logger.isDebugEnabled()) {
       logger.debug("Membership: recording shutdown status of {}", id);
     }
-    synchronized (this.shutdownMembers) {
-      this.shutdownMembers.put(id, id);
-      services.getHealthMonitor()
-          .memberShutdown(id, reason);
-      services.getJoinLeave().memberShutdown(id, reason);
-    }
+    this.shutdownMembers.add(id);
+    services.getJoinLeave().memberShutdown(id, reason);
   }
 
   @Override
   public Set<ID> getMembersNotShuttingDown() {
-    latestViewReadLock.lock();
-    try {
-      return latestView.getMembers().stream().filter(id -> 
!shutdownMembers.containsKey(id))
+    synchronized (shutdownMembers) {

Review comment:
       Only a single thread can read this set of members now. Previously all 
threads could read concurrently.

##########
File path: 
geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java
##########
@@ -1231,23 +1197,16 @@ public void shutdownMessageReceived(ID id, String 
reason) {
     if (logger.isDebugEnabled()) {
       logger.debug("Membership: recording shutdown status of {}", id);
     }
-    synchronized (this.shutdownMembers) {
-      this.shutdownMembers.put(id, id);
-      services.getHealthMonitor()
-          .memberShutdown(id, reason);
-      services.getJoinLeave().memberShutdown(id, reason);
-    }
+    this.shutdownMembers.add(id);
+    services.getJoinLeave().memberShutdown(id, reason);

Review comment:
       All threads can now concurrently invoke `memberShutdown`, is this 
desirable?

##########
File path: 
geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java
##########
@@ -1360,13 +1319,8 @@ public boolean verifyMember(ID mbr, String reason) {
 
   @Override
   public ID[] getAllMembers(final ID[] arrayType) {
-    latestViewReadLock.lock();
-    try {
-      List<ID> keySet = latestView.getMembers();
-      return keySet.toArray(arrayType);
-    } finally {
-      latestViewReadLock.unlock();
-    }
+    final List<ID> keySet = latestView.getMembers();

Review comment:
       Is the latest view and/or members list immutable?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to