@@ -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