@@ -403,11 +403,13 @@ private void flushConfigTable(Map<String, RSGroupInfo> groupMap) throws IOExcept
403403    }
404404
405405    // populate puts 
406-     for  (RSGroupInfo  RSGroupInfo  : groupMap .values ()) {
407-       RSGroupProtos .RSGroupInfo  proto  = ProtobufUtil .toProtoGroupInfo (RSGroupInfo );
408-       Put  p  = new  Put (Bytes .toBytes (RSGroupInfo .getName ()));
409-       p .addColumn (META_FAMILY_BYTES , META_QUALIFIER_BYTES , proto .toByteArray ());
410-       mutations .add (p );
406+     for  (RSGroupInfo  gi  : groupMap .values ()) {
407+       if  (!gi .getName ().equals (RSGroupInfo .DEFAULT_GROUP )) {
408+         RSGroupProtos .RSGroupInfo  proto  = ProtobufUtil .toProtoGroupInfo (gi );
409+         Put  p  = new  Put (Bytes .toBytes (gi .getName ()));
410+         p .addColumn (META_FAMILY_BYTES , META_QUALIFIER_BYTES , proto .toByteArray ());
411+         mutations .add (p );
412+       }
411413    }
412414
413415    if  (mutations .size () > 0 ) {
@@ -456,7 +458,12 @@ private synchronized void flushConfig(Map<String, RSGroupInfo> newGroupMap) thro
456458
457459    // Make changes visible after having been persisted to the source of truth 
458460    resetRSGroupMap (newGroupMap );
461+     saveRSGroupMapToZK (newGroupMap );
459462
463+     updateCacheOfRSGroups (newGroupMap .keySet ());
464+   }
465+ 
466+   private  void  saveRSGroupMapToZK (Map <String , RSGroupInfo > newGroupMap ) throws  IOException  {
460467    try  {
461468      String  groupBasePath  =
462469          ZNodePaths .joinZNode (watcher .getZNodePaths ().baseZNode , RS_GROUP_ZNODE );
@@ -470,14 +477,16 @@ private synchronized void flushConfig(Map<String, RSGroupInfo> newGroupMap) thro
470477        }
471478      }
472479
473-       for  (RSGroupInfo  RSGroupInfo  : newGroupMap .values ()) {
474-         String  znode  = ZNodePaths .joinZNode (groupBasePath , RSGroupInfo .getName ());
475-         RSGroupProtos .RSGroupInfo  proto  = ProtobufUtil .toProtoGroupInfo (RSGroupInfo );
476-         LOG .debug ("Updating znode: "  + znode );
477-         ZKUtil .createAndFailSilent (watcher , znode );
478-         zkOps .add (ZKUtil .ZKUtilOp .deleteNodeFailSilent (znode ));
479-         zkOps .add (ZKUtil .ZKUtilOp .createAndFailSilent (znode ,
480-           ProtobufUtil .prependPBMagic (proto .toByteArray ())));
480+       for  (RSGroupInfo  gi  : newGroupMap .values ()) {
481+         if  (!gi .getName ().equals (RSGroupInfo .DEFAULT_GROUP )) {
482+           String  znode  = ZNodePaths .joinZNode (groupBasePath , gi .getName ());
483+           RSGroupProtos .RSGroupInfo  proto  = ProtobufUtil .toProtoGroupInfo (gi );
484+           LOG .debug ("Updating znode: "  + znode );
485+           ZKUtil .createAndFailSilent (watcher , znode );
486+           zkOps .add (ZKUtil .ZKUtilOp .deleteNodeFailSilent (znode ));
487+           zkOps .add (ZKUtil .ZKUtilOp .createAndFailSilent (znode ,
488+               ProtobufUtil .prependPBMagic (proto .toByteArray ())));
489+         }
481490      }
482491      LOG .debug ("Writing ZK GroupInfo count: "  + zkOps .size ());
483492
@@ -487,7 +496,6 @@ private synchronized void flushConfig(Map<String, RSGroupInfo> newGroupMap) thro
487496      masterServices .abort ("Failed to write to rsGroupZNode" , e );
488497      throw  new  IOException ("Failed to write to rsGroupZNode" , e );
489498    }
490-     updateCacheOfRSGroups (newGroupMap .keySet ());
491499  }
492500
493501  /** 
@@ -547,12 +555,12 @@ private SortedSet<Address> getDefaultServers() throws IOException {
547555
548556  // Called by ServerEventsListenerThread. Synchronize on this because redoing 
549557  // the rsGroupMap then writing it out. 
550-   private  synchronized  void  updateDefaultServers (SortedSet <Address > servers ) throws   IOException   {
558+   private  synchronized  void  updateDefaultServers (SortedSet <Address > servers ) {
551559    RSGroupInfo  info  = rsGroupMap .get (RSGroupInfo .DEFAULT_GROUP );
552560    RSGroupInfo  newInfo  = new  RSGroupInfo (info .getName (), servers );
553561    HashMap <String , RSGroupInfo > newGroupMap  = Maps .newHashMap (rsGroupMap );
554562    newGroupMap .put (newInfo .getName (), newInfo );
555-     flushConfig (newGroupMap );
563+     resetRSGroupMap (newGroupMap );
556564  }
557565
558566  // Called by FailedOpenUpdaterThread 
0 commit comments