@@ -396,11 +396,13 @@ private void flushConfigTable(Map<String, RSGroupInfo> groupMap) throws IOExcept
396396    }
397397
398398    // populate puts 
399-     for  (RSGroupInfo  RSGroupInfo  : groupMap .values ()) {
400-       RSGroupProtos .RSGroupInfo  proto  = ProtobufUtil .toProtoGroupInfo (RSGroupInfo );
401-       Put  p  = new  Put (Bytes .toBytes (RSGroupInfo .getName ()));
402-       p .addColumn (META_FAMILY_BYTES , META_QUALIFIER_BYTES , proto .toByteArray ());
403-       mutations .add (p );
399+     for  (RSGroupInfo  gi  : groupMap .values ()) {
400+       if  (!gi .getName ().equals (RSGroupInfo .DEFAULT_GROUP )) {
401+         RSGroupProtos .RSGroupInfo  proto  = ProtobufUtil .toProtoGroupInfo (gi );
402+         Put  p  = new  Put (Bytes .toBytes (gi .getName ()));
403+         p .addColumn (META_FAMILY_BYTES , META_QUALIFIER_BYTES , proto .toByteArray ());
404+         mutations .add (p );
405+       }
404406    }
405407
406408    if  (mutations .size () > 0 ) {
@@ -449,7 +451,12 @@ private synchronized void flushConfig(Map<String, RSGroupInfo> newGroupMap) thro
449451
450452    // Make changes visible after having been persisted to the source of truth 
451453    resetRSGroupMap (newGroupMap );
454+     saveRSGroupMapToZK (newGroupMap );
452455
456+     updateCacheOfRSGroups (newGroupMap .keySet ());
457+   }
458+ 
459+   private  void  saveRSGroupMapToZK (Map <String , RSGroupInfo > newGroupMap ) throws  IOException  {
453460    try  {
454461      String  groupBasePath  =
455462          ZNodePaths .joinZNode (watcher .getZNodePaths ().baseZNode , RS_GROUP_ZNODE );
@@ -463,14 +470,16 @@ private synchronized void flushConfig(Map<String, RSGroupInfo> newGroupMap) thro
463470        }
464471      }
465472
466-       for  (RSGroupInfo  RSGroupInfo  : newGroupMap .values ()) {
467-         String  znode  = ZNodePaths .joinZNode (groupBasePath , RSGroupInfo .getName ());
468-         RSGroupProtos .RSGroupInfo  proto  = ProtobufUtil .toProtoGroupInfo (RSGroupInfo );
469-         LOG .debug ("Updating znode: "  + znode );
470-         ZKUtil .createAndFailSilent (watcher , znode );
471-         zkOps .add (ZKUtil .ZKUtilOp .deleteNodeFailSilent (znode ));
472-         zkOps .add (ZKUtil .ZKUtilOp .createAndFailSilent (znode ,
473-           ProtobufUtil .prependPBMagic (proto .toByteArray ())));
473+       for  (RSGroupInfo  gi  : newGroupMap .values ()) {
474+         if  (!gi .getName ().equals (RSGroupInfo .DEFAULT_GROUP )) {
475+           String  znode  = ZNodePaths .joinZNode (groupBasePath , gi .getName ());
476+           RSGroupProtos .RSGroupInfo  proto  = ProtobufUtil .toProtoGroupInfo (gi );
477+           LOG .debug ("Updating znode: "  + znode );
478+           ZKUtil .createAndFailSilent (watcher , znode );
479+           zkOps .add (ZKUtil .ZKUtilOp .deleteNodeFailSilent (znode ));
480+           zkOps .add (ZKUtil .ZKUtilOp .createAndFailSilent (znode ,
481+               ProtobufUtil .prependPBMagic (proto .toByteArray ())));
482+         }
474483      }
475484      LOG .debug ("Writing ZK GroupInfo count: "  + zkOps .size ());
476485
@@ -480,7 +489,6 @@ private synchronized void flushConfig(Map<String, RSGroupInfo> newGroupMap) thro
480489      masterServices .abort ("Failed to write to rsGroupZNode" , e );
481490      throw  new  IOException ("Failed to write to rsGroupZNode" , e );
482491    }
483-     updateCacheOfRSGroups (newGroupMap .keySet ());
484492  }
485493
486494  /** 
@@ -540,12 +548,12 @@ private SortedSet<Address> getDefaultServers() throws IOException {
540548
541549  // Called by ServerEventsListenerThread. Synchronize on this because redoing 
542550  // the rsGroupMap then writing it out. 
543-   private  synchronized  void  updateDefaultServers (SortedSet <Address > servers ) throws   IOException   {
551+   private  synchronized  void  updateDefaultServers (SortedSet <Address > servers ) {
544552    RSGroupInfo  info  = rsGroupMap .get (RSGroupInfo .DEFAULT_GROUP );
545553    RSGroupInfo  newInfo  = new  RSGroupInfo (info .getName (), servers );
546554    HashMap <String , RSGroupInfo > newGroupMap  = Maps .newHashMap (rsGroupMap );
547555    newGroupMap .put (newInfo .getName (), newInfo );
548-     flushConfig (newGroupMap );
556+     resetRSGroupMap (newGroupMap );
549557  }
550558
551559  /** 
0 commit comments