Skip to content

Commit 99221da

Browse files
Load: detect region replica set changes due to Region Migration (#14104)
1 parent 159e558 commit 99221da

31 files changed

+202
-85
lines changed

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1176,6 +1176,8 @@ public class IoTDBConfig {
11761176

11771177
private long loadCleanupTaskExecutionDelayTimeSeconds = 1800L; // 30 min
11781178

1179+
private int loadTsFileRetryCountOnRegionChange = 10;
1180+
11791181
private double loadWriteThroughputBytesPerSecond = -1; // Bytes/s
11801182

11811183
private boolean loadActiveListeningEnable = true;
@@ -4138,6 +4140,14 @@ public void setLoadCleanupTaskExecutionDelayTimeSeconds(
41384140
this.loadCleanupTaskExecutionDelayTimeSeconds = loadCleanupTaskExecutionDelayTimeSeconds;
41394141
}
41404142

4143+
public int getLoadTsFileRetryCountOnRegionChange() {
4144+
return loadTsFileRetryCountOnRegionChange;
4145+
}
4146+
4147+
public void setLoadTsFileRetryCountOnRegionChange(int loadTsFileRetryCountOnRegionChange) {
4148+
this.loadTsFileRetryCountOnRegionChange = loadTsFileRetryCountOnRegionChange;
4149+
}
4150+
41414151
public double getLoadWriteThroughputBytesPerSecond() {
41424152
return loadWriteThroughputBytesPerSecond;
41434153
}

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2412,6 +2412,11 @@ private void loadLoadTsFileProps(TrimProperties properties) {
24122412
properties.getProperty(
24132413
"load_clean_up_task_execution_delay_time_seconds",
24142414
String.valueOf(conf.getLoadCleanupTaskExecutionDelayTimeSeconds()))));
2415+
conf.setLoadTsFileRetryCountOnRegionChange(
2416+
Integer.parseInt(
2417+
properties.getProperty(
2418+
"load_tsfile_retry_count_on_region_change",
2419+
String.valueOf(conf.getLoadTsFileRetryCountOnRegionChange()))));
24152420
conf.setLoadWriteThroughputBytesPerSecond(
24162421
Double.parseDouble(
24172422
properties.getProperty(

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/LoadEmptyFileException.java renamed to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/load/LoadEmptyFileException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.apache.iotdb.db.exception;
20+
package org.apache.iotdb.db.exception.load;
2121

2222
public class LoadEmptyFileException extends LoadFileException {
2323

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/LoadFileException.java renamed to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/load/LoadFileException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.apache.iotdb.db.exception;
20+
package org.apache.iotdb.db.exception.load;
2121

2222
import org.apache.iotdb.commons.exception.IoTDBException;
2323
import org.apache.iotdb.rpc.TSStatusCode;

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/LoadReadOnlyException.java renamed to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/load/LoadReadOnlyException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.apache.iotdb.db.exception;
20+
package org.apache.iotdb.db.exception.load;
2121

2222
import org.apache.iotdb.commons.exception.IoTDBException;
2323
import org.apache.iotdb.rpc.TSStatusCode;

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/LoadRuntimeOutOfMemoryException.java renamed to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/load/LoadRuntimeOutOfMemoryException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.apache.iotdb.db.exception;
20+
package org.apache.iotdb.db.exception.load;
2121

2222
public class LoadRuntimeOutOfMemoryException extends RuntimeException {
2323
public LoadRuntimeOutOfMemoryException(String message) {

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/PartitionViolationException.java renamed to iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/load/PartitionViolationException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* under the License.
1818
*/
1919

20-
package org.apache.iotdb.db.exception;
20+
package org.apache.iotdb.db.exception.load;
2121

2222
public class PartitionViolationException extends LoadFileException {
2323

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
package org.apache.iotdb.db.exception.load;
21+
22+
import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
23+
24+
public class RegionReplicaSetChangedException extends LoadFileException {
25+
26+
public RegionReplicaSetChangedException(TRegionReplicaSet original, TRegionReplicaSet current) {
27+
super(
28+
String.format(
29+
"Region replica set changed from %s to %s during loading TsFile, maybe due to region migration",
30+
original, current));
31+
}
32+
33+
public RegionReplicaSetChangedException() {
34+
super("Region replica set changed during loading TsFile, maybe due to region migration");
35+
}
36+
}

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/DeletionLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.apache.iotdb.commons.conf.CommonDescriptor;
2323
import org.apache.iotdb.db.auth.AuthorityChecker;
2424
import org.apache.iotdb.db.conf.IoTDBDescriptor;
25-
import org.apache.iotdb.db.exception.LoadFileException;
25+
import org.apache.iotdb.db.exception.load.LoadFileException;
2626
import org.apache.iotdb.db.protocol.session.SessionManager;
2727
import org.apache.iotdb.db.queryengine.common.SessionInfo;
2828
import org.apache.iotdb.db.queryengine.plan.Coordinator;

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/legacy/loader/TsFileLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import org.apache.iotdb.commons.path.PartialPath;
2424
import org.apache.iotdb.db.auth.AuthorityChecker;
2525
import org.apache.iotdb.db.conf.IoTDBDescriptor;
26-
import org.apache.iotdb.db.exception.LoadFileException;
26+
import org.apache.iotdb.db.exception.load.LoadFileException;
2727
import org.apache.iotdb.db.protocol.session.SessionManager;
2828
import org.apache.iotdb.db.queryengine.common.SessionInfo;
2929
import org.apache.iotdb.db.queryengine.plan.Coordinator;

0 commit comments

Comments
 (0)