This is an automated email from the ASF dual-hosted git repository.

tanxinyu pushed a commit to branch ca_test
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 3e892dbd1573fd0cdbfd39c00e36aa31335e5c1e
Author: YongzaoDan <[email protected]>
AuthorDate: Tue Aug 15 14:02:51 2023 +0800

    Finish
---
 .../persistence/partition/DatabasePartitionTable.java         |  4 ++--
 .../iotdb/confignode/persistence/partition/RegionGroup.java   | 11 +++++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/DatabasePartitionTable.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/DatabasePartitionTable.java
index a629569470a..bdca8aa7959 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/DatabasePartitionTable.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/DatabasePartitionTable.java
@@ -504,7 +504,7 @@ public class DatabasePartitionTable {
           regionId);
       return;
     }
-    regionGroup.getReplicaSet().getDataNodeLocations().add(node);
+    regionGroup.addRegionLocation(node);
   }
 
   private void removeRegionOldLocation(TConsensusGroupId regionId, 
TDataNodeLocation node) {
@@ -525,7 +525,7 @@ public class DatabasePartitionTable {
           regionId);
       return;
     }
-    regionGroup.getReplicaSet().getDataNodeLocations().remove(node);
+    regionGroup.removeRegionLocation(node);
   }
 
   /**
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/RegionGroup.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/RegionGroup.java
index a555c2349cd..81fea013c21 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/RegionGroup.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/partition/RegionGroup.java
@@ -19,6 +19,7 @@
 package org.apache.iotdb.confignode.persistence.partition;
 
 import org.apache.iotdb.common.rpc.thrift.TConsensusGroupId;
+import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
 import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
 import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
@@ -74,6 +75,16 @@ public class RegionGroup {
     return replicaSet.deepCopy();
   }
 
+  public void addRegionLocation(TDataNodeLocation node) {
+    replicaSet.addToDataNodeLocations(node);
+    replicaSet.getDataNodeLocations().sort(TDataNodeLocation::compareTo);
+  }
+
+  public void removeRegionLocation(TDataNodeLocation node) {
+    replicaSet.getDataNodeLocations().remove(node);
+    replicaSet.getDataNodeLocations().sort(TDataNodeLocation::compareTo);
+  }
+
   /** @param deltaMap Map<TSeriesPartitionSlot, Delta TTimePartitionSlot 
Count> */
   public void updateSlotCountMap(Map<TSeriesPartitionSlot, AtomicLong> 
deltaMap) {
     deltaMap.forEach(

Reply via email to