@@ -53,7 +53,7 @@ public class GossipManager {
5353 private boolean isWorking = false ;
5454 private ReentrantReadWriteLock rwlock = new ReentrantReadWriteLock ();
5555 private ScheduledExecutorService doGossipExecutor = Executors .newScheduledThreadPool (1 );
56- private ScheduledExecutorService clearExecutor = Executors .newSingleThreadScheduledExecutor ();
56+ // private ScheduledExecutorService clearExecutor = Executors.newSingleThreadScheduledExecutor();
5757
5858 private Map <GossipMember , HeartbeatState > endpointMembers = new ConcurrentHashMap <>();
5959 private List <GossipMember > liveMembers = new ArrayList <>();
@@ -173,16 +173,11 @@ public void run() {
173173 }
174174 checkStatus ();
175175
176- if (LOGGER .isTraceEnabled ()) {
177- LOGGER .trace ("live member : " + getLiveMembers ());
178- LOGGER .trace ("dead member : " + getDeadMembers ());
179- LOGGER .trace ("endpoint : " + getEndpointMembers ());
180- LOGGER .trace ("convictthreshod :" + convictedTime ());
181- }
182- LOGGER .info ("live member : " + getLiveMembers ());
183- LOGGER .info ("dead member : " + getDeadMembers ());
184- LOGGER .info ("endpoint : " + getEndpointMembers ());
185- LOGGER .info ("convictthreshod :" + convictedTime ());
176+ }
177+ if (LOGGER .isTraceEnabled ()) {
178+ LOGGER .trace ("live member : " + getLiveMembers ());
179+ LOGGER .trace ("dead member : " + getDeadMembers ());
180+ LOGGER .trace ("endpoint : " + getEndpointMembers ());
186181 }
187182 } catch (UnknownHostException e ) {
188183 LOGGER .error (e .getMessage ());
@@ -251,8 +246,12 @@ public void apply2LocalState(Map<GossipMember, HeartbeatState> endpointMembers)
251246 }
252247
253248 private void remoteStateReplaceLocalState (GossipMember member , HeartbeatState remoteState ) {
254- getEndpointMembers ().put (member , remoteState );
255249 up (member );
250+ if (endpointMembers .containsKey (member )) {
251+ HeartbeatState state = endpointMembers .get (member );
252+ endpointMembers .remove (member );
253+ endpointMembers .put (member , state );
254+ }
256255 }
257256
258257 public GossipMember createByDigest (GossipDigest digest ) {
@@ -309,7 +308,7 @@ private void gossip2Seed(Buffer buffer) {
309308 return ;
310309 }
311310 int index = (size == 1 ) ? 0 : random .nextInt (size );
312- if (liveMembers .size () == 0 ) {
311+ if (liveMembers .size () == 1 ) {
313312 sendGossip2Seed (buffer , settings .getSeedMembers (), index );
314313 } else {
315314 double prob = size / (liveMembers .size () + deadMembers .size ());
@@ -341,7 +340,7 @@ private boolean sendGossip2Seed(Buffer buffer, List<SeedMember> members, int ind
341340 if (buffer != null && index >= 0 ) {
342341 SeedMember target = members .get (index );
343342 settings .getMsgService ().sendMsg (target .getIpAddress (), target .getPort (), buffer );
344- return settings . getSeedMembers (). contains ( target ) ;
343+ return true ;
345344 }
346345 return false ;
347346 }
@@ -396,15 +395,14 @@ private void fireGossipEvent(GossipMember member, GossipState state) {
396395 }
397396 }
398397
399- private void clearMember (GossipMember member ) {
400- rwlock .writeLock ().lock ();
401- try {
402- deadMembers .remove (member );
403- endpointMembers .remove (member );
404- } finally {
405- rwlock .writeLock ().unlock ();
406- }
407- }
398+ // private void clearMember(GossipMember member) {
399+ // rwlock.writeLock().lock();
400+ // try {
401+ // endpointMembers.remove(member);
402+ // } finally {
403+ // rwlock.writeLock().unlock();
404+ // }
405+ // }
408406
409407 public void down (GossipMember member ) {
410408 LOGGER .info ("down ~~" );
@@ -415,9 +413,7 @@ public void down(GossipMember member) {
415413 if (!deadMembers .contains (member )) {
416414 deadMembers .add (member );
417415 }
418- clearExecutor .schedule (() -> {
419- clearMember (member );
420- }, getSettings ().getDeleteThreshold () * getSettings ().getGossipInterval (), TimeUnit .MILLISECONDS );
416+ // clearExecutor.schedule(() -> clearMember(member), getSettings().getDeleteThreshold() * getSettings().getGossipInterval(), TimeUnit.MILLISECONDS);
421417 fireGossipEvent (member , GossipState .DOWN );
422418 } finally {
423419 rwlock .writeLock ().unlock ();
@@ -436,9 +432,9 @@ private void up(GossipMember member) {
436432 }
437433 if (deadMembers .contains (member )) {
438434 deadMembers .remove (member );
439- }
440- if (!member .equals (getSelf ())){
441435 LOGGER .info ("up ~~" );
436+ }
437+ if (!member .equals (getSelf ())) {
442438 fireGossipEvent (member , GossipState .UP );
443439 }
444440 } finally {
0 commit comments