@@ -396,13 +396,11 @@ private void flushConfigTable(Map<String, RSGroupInfo> groupMap) throws IOExcept
396396 }
397397
398398 // populate puts
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- }
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 );
406404 }
407405
408406 if (mutations .size () > 0 ) {
@@ -451,12 +449,7 @@ private synchronized void flushConfig(Map<String, RSGroupInfo> newGroupMap) thro
451449
452450 // Make changes visible after having been persisted to the source of truth
453451 resetRSGroupMap (newGroupMap );
454- saveRSGroupMapToZK (newGroupMap );
455452
456- updateCacheOfRSGroups (newGroupMap .keySet ());
457- }
458-
459- private void saveRSGroupMapToZK (Map <String , RSGroupInfo > newGroupMap ) throws IOException {
460453 try {
461454 String groupBasePath =
462455 ZNodePaths .joinZNode (watcher .getZNodePaths ().baseZNode , RS_GROUP_ZNODE );
@@ -470,16 +463,14 @@ private void saveRSGroupMapToZK(Map<String, RSGroupInfo> newGroupMap) throws IOE
470463 }
471464 }
472465
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- }
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 ())));
483474 }
484475 LOG .debug ("Writing ZK GroupInfo count: " + zkOps .size ());
485476
@@ -489,6 +480,7 @@ private void saveRSGroupMapToZK(Map<String, RSGroupInfo> newGroupMap) throws IOE
489480 masterServices .abort ("Failed to write to rsGroupZNode" , e );
490481 throw new IOException ("Failed to write to rsGroupZNode" , e );
491482 }
483+ updateCacheOfRSGroups (newGroupMap .keySet ());
492484 }
493485
494486 /**
@@ -548,12 +540,12 @@ private SortedSet<Address> getDefaultServers() throws IOException {
548540
549541 // Called by ServerEventsListenerThread. Synchronize on this because redoing
550542 // the rsGroupMap then writing it out.
551- private synchronized void updateDefaultServers (SortedSet <Address > servers ) {
543+ private synchronized void updateDefaultServers (SortedSet <Address > servers ) throws IOException {
552544 RSGroupInfo info = rsGroupMap .get (RSGroupInfo .DEFAULT_GROUP );
553545 RSGroupInfo newInfo = new RSGroupInfo (info .getName (), servers );
554546 HashMap <String , RSGroupInfo > newGroupMap = Maps .newHashMap (rsGroupMap );
555547 newGroupMap .put (newInfo .getName (), newInfo );
556- resetRSGroupMap (newGroupMap );
548+ flushConfig (newGroupMap );
557549 }
558550
559551 /**
0 commit comments