@@ -403,11 +403,13 @@ private void flushConfigTable(Map<String, RSGroupInfo> groupMap) throws IOExcept
403
403
}
404
404
405
405
// 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
+ }
411
413
}
412
414
413
415
if (mutations .size () > 0 ) {
@@ -456,7 +458,12 @@ private synchronized void flushConfig(Map<String, RSGroupInfo> newGroupMap) thro
456
458
457
459
// Make changes visible after having been persisted to the source of truth
458
460
resetRSGroupMap (newGroupMap );
461
+ saveRSGroupMapToZK (newGroupMap );
459
462
463
+ updateCacheOfRSGroups (newGroupMap .keySet ());
464
+ }
465
+
466
+ private void saveRSGroupMapToZK (Map <String , RSGroupInfo > newGroupMap ) throws IOException {
460
467
try {
461
468
String groupBasePath =
462
469
ZNodePaths .joinZNode (watcher .getZNodePaths ().baseZNode , RS_GROUP_ZNODE );
@@ -470,14 +477,16 @@ private synchronized void flushConfig(Map<String, RSGroupInfo> newGroupMap) thro
470
477
}
471
478
}
472
479
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
+ }
481
490
}
482
491
LOG .debug ("Writing ZK GroupInfo count: " + zkOps .size ());
483
492
@@ -487,7 +496,6 @@ private synchronized void flushConfig(Map<String, RSGroupInfo> newGroupMap) thro
487
496
masterServices .abort ("Failed to write to rsGroupZNode" , e );
488
497
throw new IOException ("Failed to write to rsGroupZNode" , e );
489
498
}
490
- updateCacheOfRSGroups (newGroupMap .keySet ());
491
499
}
492
500
493
501
/**
@@ -547,12 +555,12 @@ private SortedSet<Address> getDefaultServers() throws IOException {
547
555
548
556
// Called by ServerEventsListenerThread. Synchronize on this because redoing
549
557
// the rsGroupMap then writing it out.
550
- private synchronized void updateDefaultServers (SortedSet <Address > servers ) throws IOException {
558
+ private synchronized void updateDefaultServers (SortedSet <Address > servers ) {
551
559
RSGroupInfo info = rsGroupMap .get (RSGroupInfo .DEFAULT_GROUP );
552
560
RSGroupInfo newInfo = new RSGroupInfo (info .getName (), servers );
553
561
HashMap <String , RSGroupInfo > newGroupMap = Maps .newHashMap (rsGroupMap );
554
562
newGroupMap .put (newInfo .getName (), newInfo );
555
- flushConfig (newGroupMap );
563
+ resetRSGroupMap (newGroupMap );
556
564
}
557
565
558
566
// Called by FailedOpenUpdaterThread
0 commit comments