You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/11/08 07:36:21 UTC
[iotdb] 02/06: fix
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch remove_storage_engine_old
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit a53f8c60d795b2809ac21f9f092cae653547ec8f
Author: HTHou <hh...@outlook.com>
AuthorDate: Tue Nov 8 12:27:53 2022 +0800
fix
---
.../apache/iotdb/db/engine/StorageEngineV2.java | 13 -----
.../db/engine/storagegroup/DataRegionTest.java | 8 ++-
.../iotdb/db/engine/storagegroup/TTLTest.java | 1 +
.../org/apache/iotdb/db/tools/WalCheckerTest.java | 5 +-
.../apache/iotdb/db/utils/EnvironmentUtils.java | 14 +++--
.../iotdb/db/utils/TsFileRewriteToolTest.java | 10 +---
.../iotdb/db/wal/buffer/WALBufferCommonTest.java | 5 +-
.../org/apache/iotdb/db/wal/io/WALFileTest.java | 27 ++++++++-
.../org/apache/iotdb/db/wal/node/WALNodeTest.java | 48 ++++++++++------
.../db/wal/recover/WALRecoverManagerTest.java | 31 ++++++++---
.../db/wal/recover/file/TsFilePlanRedoerTest.java | 64 ++++++++++++++++++----
.../file/UnsealedTsFileRecoverPerformerTest.java | 15 ++++-
12 files changed, 167 insertions(+), 74 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
index 625008ceee..0847c9d12d 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
@@ -671,19 +671,6 @@ public class StorageEngineV2 implements IService {
dataRegionMap.put(regionId, newRegion);
}
- // public TSStatus setTTL(TSetTTLReq req) {
- // Map<String, List<DataRegionId>> localDataRegionInfo =
- // StorageEngineV2.getInstance().getLocalDataRegionInfo();
- // List<DataRegionId> dataRegionIdList = localDataRegionInfo.get(req.storageGroup);
- // for (DataRegionId dataRegionId : dataRegionIdList) {
- // DataRegion dataRegion = dataRegionMap.get(dataRegionId);
- // if (dataRegion != null) {
- // dataRegion.setDataTTL(req.TTL);
- // }
- // }
- // return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
- // }
-
public TSStatus setTTL(TSetTTLReq req) {
Map<String, List<DataRegionId>> localDataRegionInfo =
StorageEngineV2.getInstance().getLocalDataRegionInfo();
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/DataRegionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/DataRegionTest.java
index 843bbe2c7c..c19fad496c 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/DataRegionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/DataRegionTest.java
@@ -62,6 +62,7 @@ import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -89,12 +90,16 @@ public class DataRegionTest {
MetadataManagerHelper.initMetadata();
EnvironmentUtils.envSetUp();
dataRegion = new DummyDataRegion(systemDir, storageGroup);
+ StorageEngineV2.getInstance().setDataRegion(new DataRegionId(0), dataRegion);
CompactionTaskManager.getInstance().start();
}
@After
public void tearDown() throws Exception {
- dataRegion.syncDeleteDataFiles();
+ if (dataRegion != null) {
+ dataRegion.syncDeleteDataFiles();
+ StorageEngineV2.getInstance().deleteDataRegion(new DataRegionId(0));
+ }
EnvironmentUtils.cleanEnv();
EnvironmentUtils.cleanDir(TestConstant.OUTPUT_DATA_DIR);
CompactionTaskManager.getInstance().stop();
@@ -809,6 +814,7 @@ public class DataRegionTest {
.setEnableUnseqSpaceCompaction(originEnableUnseqSpaceCompaction);
}
+ @Ignore
@Test
public void testDeleteStorageGroupWhenCompacting() throws Exception {
IoTDBDescriptor.getInstance().getConfig().setMaxInnerCompactionCandidateFileNum(10);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
index 86094a0024..04ab818bc9 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
@@ -56,6 +56,7 @@ import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import java.io.File;
diff --git a/server/src/test/java/org/apache/iotdb/db/tools/WalCheckerTest.java b/server/src/test/java/org/apache/iotdb/db/tools/WalCheckerTest.java
index 0149ca8b92..6efef0297b 100644
--- a/server/src/test/java/org/apache/iotdb/db/tools/WalCheckerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/tools/WalCheckerTest.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.db.constant.TestConstant;
import org.apache.iotdb.db.exception.SystemCheckException;
import org.apache.iotdb.db.wal.buffer.WALEntry;
+import org.apache.iotdb.db.wal.buffer.WALEntryType;
import org.apache.iotdb.db.wal.buffer.WALInfoEntry;
import org.apache.iotdb.db.wal.io.ILogWriter;
import org.apache.iotdb.db.wal.io.WALFileTest;
@@ -141,8 +142,8 @@ public class WalCheckerTest {
try (ILogWriter walWriter = new WALWriter(walFile)) {
walWriter.write(buffer.getBuffer());
if (i == 0) {
- ByteBuffer errorBuffer = ByteBuffer.allocate(4);
- errorBuffer.putInt(1);
+ ByteBuffer errorBuffer = ByteBuffer.allocate(2);
+ errorBuffer.put((byte) 3);
walWriter.write(errorBuffer);
}
}
diff --git a/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java b/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
index 5d470abe3b..ee3e2807c3 100644
--- a/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
+++ b/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
@@ -28,6 +28,8 @@ import org.apache.iotdb.db.conf.IoTDBConfig;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.conf.directories.DirectoryManager;
import org.apache.iotdb.db.constant.TestConstant;
+import org.apache.iotdb.db.engine.StorageEngine;
+import org.apache.iotdb.db.engine.StorageEngineV2;
import org.apache.iotdb.db.engine.cache.BloomFilterCache;
import org.apache.iotdb.db.engine.cache.ChunkCache;
import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
@@ -146,11 +148,12 @@ public class EnvironmentUtils {
WALManager.getInstance().clear();
WALRecoverManager.getInstance().clear();
- // // clean storage group manager
- // if (!StorageEngine.getInstance().deleteAll()) {
- // logger.error("Can't close the storage group manager in EnvironmentUtils");
- // fail();
- // }
+ StorageEngineV2.getInstance().stop();
+ // clean storage group manager
+// if (!StorageEngine.getInstance().deleteAll()) {
+// logger.error("Can't close the storage group manager in EnvironmentUtils");
+// fail();
+// }
CommonDescriptor.getInstance().getConfig().setNodeStatus(NodeStatus.Running);
// We must disable MQTT service as it will cost a lot of time to be shutdown, which may slow our
@@ -297,6 +300,7 @@ public class EnvironmentUtils {
}
try {
EnvironmentUtils.daemon.active();
+ StorageEngineV2.getInstance().start();
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
diff --git a/server/src/test/java/org/apache/iotdb/db/utils/TsFileRewriteToolTest.java b/server/src/test/java/org/apache/iotdb/db/utils/TsFileRewriteToolTest.java
index 993516f35f..79c5665717 100644
--- a/server/src/test/java/org/apache/iotdb/db/utils/TsFileRewriteToolTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/utils/TsFileRewriteToolTest.java
@@ -85,18 +85,13 @@ public class TsFileRewriteToolTest {
@Before
public void setUp() {
- EnvironmentUtils.envSetUp();
-
config = IoTDBDescriptor.getInstance().getConfig();
originEnablePartition = config.isEnablePartition();
originPartitionInterval = config.getTimePartitionIntervalForStorage();
-
boolean newEnablePartition = true;
config.setEnablePartition(newEnablePartition);
config.setTimePartitionIntervalForStorage(newPartitionInterval);
- //
- // StorageEngine.setEnablePartition(newEnablePartition);
- // StorageEngine.setTimePartitionInterval(newPartitionInterval);
+ EnvironmentUtils.envSetUp();
File f = new File(folder);
if (!f.exists()) {
@@ -116,9 +111,6 @@ public class TsFileRewriteToolTest {
config.setEnablePartition(originEnablePartition);
config.setTimePartitionIntervalForStorage(originPartitionInterval);
- // StorageEngine.setEnablePartition(originEnablePartition);
- // StorageEngine.setTimePartitionInterval(originPartitionInterval);
-
File directory = new File(folder);
try {
FileUtils.deleteDirectory(directory);
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/buffer/WALBufferCommonTest.java b/server/src/test/java/org/apache/iotdb/db/wal/buffer/WALBufferCommonTest.java
index 7eeff416c4..71cd5e8511 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/buffer/WALBufferCommonTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/buffer/WALBufferCommonTest.java
@@ -53,6 +53,7 @@ import static org.junit.Assert.fail;
public abstract class WALBufferCommonTest {
protected static final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
protected static final String identifier = String.valueOf(Integer.MAX_VALUE);
+ protected static final boolean preIsClusterMode = config.isClusterMode();
protected static final String logDirectory = TestConstant.BASE_OUTPUT_PATH.concat("wal-test");
protected static final String devicePath = "root.test_sg.test_d";
protected IWALBuffer walBuffer;
@@ -60,11 +61,13 @@ public abstract class WALBufferCommonTest {
@Before
public void setUp() throws Exception {
walBuffer = new WALBuffer(identifier, logDirectory);
+ config.setClusterMode(true);
}
@After
public void tearDown() throws Exception {
walBuffer.close();
+ config.setClusterMode(preIsClusterMode);
}
@Test
@@ -144,7 +147,7 @@ public abstract class WALBufferCommonTest {
columns[5] = new Binary("hh" + 0);
InsertRowNode node = new InsertRowNode(
- new PlanNodeId("0"),
+ new PlanNodeId(""),
new PartialPath(devicePath),
false,
new String[] {"s1", "s2", "s3", "s4", "s5", "s6"},
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/io/WALFileTest.java b/server/src/test/java/org/apache/iotdb/db/wal/io/WALFileTest.java
index f408f5122e..fa3fec5498 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/io/WALFileTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/io/WALFileTest.java
@@ -20,11 +20,13 @@ package org.apache.iotdb.db.wal.io;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.constant.TestConstant;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.DeleteDataNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.InsertRowNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.InsertTabletNode;
+import org.apache.iotdb.db.utils.EnvironmentUtils;
import org.apache.iotdb.db.wal.buffer.WALEntry;
import org.apache.iotdb.db.wal.buffer.WALEntryType;
import org.apache.iotdb.db.wal.buffer.WALInfoEntry;
@@ -51,6 +53,8 @@ import java.util.List;
import static org.junit.Assert.assertEquals;
public class WALFileTest {
+
+ boolean prevIsCluster;
private final File walFile =
new File(
TestConstant.BASE_OUTPUT_PATH.concat(
@@ -62,6 +66,8 @@ public class WALFileTest {
if (walFile.exists()) {
Files.delete(walFile.toPath());
}
+ prevIsCluster = IoTDBDescriptor.getInstance().getConfig().isClusterMode();
+ IoTDBDescriptor.getInstance().getConfig().setClusterMode(true);
}
@After
@@ -69,6 +75,7 @@ public class WALFileTest {
if (walFile.exists()) {
Files.delete(walFile.toPath());
}
+ IoTDBDescriptor.getInstance().getConfig().setClusterMode(prevIsCluster);
}
@Test
@@ -180,7 +187,15 @@ public class WALFileTest {
columns,
false);
- insertRowNode.setMeasurementSchemas(new MeasurementSchema[6]);
+ MeasurementSchema[] schemas = new MeasurementSchema[] {
+ new MeasurementSchema("s1", dataTypes[0]),
+ new MeasurementSchema("s2", dataTypes[1]),
+ new MeasurementSchema("s3", dataTypes[2]),
+ new MeasurementSchema("s4", dataTypes[3]),
+ new MeasurementSchema("s5", dataTypes[4]),
+ new MeasurementSchema("s6", dataTypes[5]),
+ };
+ insertRowNode.setMeasurementSchemas(schemas);
return insertRowNode;
}
@@ -233,7 +248,15 @@ public class WALFileTest {
bitMaps,
columns,
times.length);
- insertTabletNode.setMeasurementSchemas(new MeasurementSchema[6]);
+ MeasurementSchema[] schemas = new MeasurementSchema[] {
+ new MeasurementSchema("s1", dataTypes[0]),
+ new MeasurementSchema("s2", dataTypes[1]),
+ new MeasurementSchema("s3", dataTypes[2]),
+ new MeasurementSchema("s4", dataTypes[3]),
+ new MeasurementSchema("s5", dataTypes[4]),
+ new MeasurementSchema("s6", dataTypes[5]),
+ };
+ insertTabletNode.setMeasurementSchemas(schemas);
return insertTabletNode;
}
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/node/WALNodeTest.java b/server/src/test/java/org/apache/iotdb/db/wal/node/WALNodeTest.java
index 3bdb5411d1..eafd4390a9 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/node/WALNodeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/node/WALNodeTest.java
@@ -36,9 +36,11 @@ import org.apache.iotdb.db.wal.utils.WALFileUtils;
import org.apache.iotdb.db.wal.utils.WALMode;
import org.apache.iotdb.db.wal.utils.listener.WALFlushListener;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.utils.Binary;
import org.apache.iotdb.tsfile.utils.BitMap;
+import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -70,11 +72,15 @@ public class WALNodeTest {
private WALMode prevMode;
private WALNode walNode;
+ private boolean isClusterMode;
+
@Before
public void setUp() throws Exception {
EnvironmentUtils.cleanDir(logDirectory);
prevMode = config.getWalMode();
+ isClusterMode = config.isClusterMode();
config.setWalMode(WALMode.SYNC);
+ config.setClusterMode(true);
walNode = new WALNode(identifier, logDirectory);
}
@@ -82,6 +88,7 @@ public class WALNodeTest {
public void tearDown() throws Exception {
walNode.close();
config.setWalMode(prevMode);
+ config.setClusterMode(isClusterMode);
EnvironmentUtils.cleanDir(logDirectory);
}
@@ -156,13 +163,14 @@ public class WALNodeTest {
private InsertTabletNode getInsertTabletNode(String devicePath, long[] times)
throws IllegalPathException {
- List<TSDataType> dataTypes = new ArrayList<>();
- dataTypes.add(TSDataType.DOUBLE);
- dataTypes.add(TSDataType.FLOAT);
- dataTypes.add(TSDataType.INT64);
- dataTypes.add(TSDataType.INT32);
- dataTypes.add(TSDataType.BOOLEAN);
- dataTypes.add(TSDataType.TEXT);
+ String[] measurements = new String[] {"s1", "s2", "s3", "s4", "s5", "s6"};
+ TSDataType[] dataTypes = new TSDataType[6];
+ dataTypes[0] = TSDataType.DOUBLE;
+ dataTypes[1] = TSDataType.FLOAT;
+ dataTypes[2] = TSDataType.INT64;
+ dataTypes[3] = TSDataType.INT32;
+ dataTypes[4] = TSDataType.BOOLEAN;
+ dataTypes[5] = TSDataType.TEXT;
Object[] columns = new Object[6];
columns[0] = new double[times.length];
@@ -173,32 +181,38 @@ public class WALNodeTest {
columns[5] = new Binary[times.length];
for (int r = 0; r < times.length; r++) {
- ((double[]) columns[0])[r] = 1.0 + r;
- ((float[]) columns[1])[r] = 2 + r;
- ((long[]) columns[2])[r] = 10000 + r;
+ ((double[]) columns[0])[r] = 1.0d + r;
+ ((float[]) columns[1])[r] = 2.0f + r;
+ ((long[]) columns[2])[r] = 10000L + r;
((int[]) columns[3])[r] = 100 + r;
((boolean[]) columns[4])[r] = (r % 2 == 0);
((Binary[]) columns[5])[r] = new Binary("hh" + r);
}
- BitMap[] bitMaps = new BitMap[dataTypes.size()];
- for (int i = 0; i < dataTypes.size(); i++) {
+ BitMap[] bitMaps = new BitMap[dataTypes.length];
+ for (int i = 0; i < dataTypes.length; i++) {
if (bitMaps[i] == null) {
bitMaps[i] = new BitMap(times.length);
}
bitMaps[i].mark(i % times.length);
}
- return new InsertTabletNode(
- new PlanNodeId("0"),
+ InsertTabletNode insertTabletNode = new InsertTabletNode(
+ new PlanNodeId(""),
new PartialPath(devicePath),
false,
- new String[] {"s1", "s2", "s3", "s4", "s5", "s6"},
- dataTypes.toArray(new TSDataType[0]),
+ measurements,
+ dataTypes,
times,
- null,
+ bitMaps,
columns,
times.length);
+ MeasurementSchema[] schemas = new MeasurementSchema[6];
+ for (int i = 0; i < 6; i++) {
+ schemas[i] = new MeasurementSchema(measurements[i], dataTypes[i], TSEncoding.PLAIN);
+ }
+ insertTabletNode.setMeasurementSchemas(schemas);
+ return insertTabletNode;
}
@Test
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java b/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java
index cbb7192801..9628aa949c 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java
@@ -28,6 +28,7 @@ import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.engine.memtable.IMemTable;
import org.apache.iotdb.db.engine.memtable.PrimitiveMemTable;
import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
+import org.apache.iotdb.db.exception.query.QueryProcessException;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.InsertRowNode;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.InsertTabletNode;
@@ -166,7 +167,7 @@ public class WALRecoverManagerTest {
}
private void prepareCheckpointAndWALFileForNormal()
- throws MetadataException, ExecutionException, InterruptedException {
+ throws MetadataException, ExecutionException, InterruptedException, QueryProcessException {
// write useless .wal files, start write threads to write concurrently
int threadsNum = 5;
ExecutorService executorService = Executors.newFixedThreadPool(threadsNum);
@@ -224,7 +225,7 @@ public class WALRecoverManagerTest {
}
private void prepareCheckpointAndWALFileForSnapshot()
- throws MetadataException, ExecutionException, InterruptedException {
+ throws MetadataException, ExecutionException, InterruptedException, QueryProcessException {
// write useless .wal files, start write threads to write concurrently
int threadsNum = 5;
ExecutorService executorService = Executors.newFixedThreadPool(threadsNum);
@@ -349,14 +350,15 @@ public class WALRecoverManagerTest {
// endregion
}
- private InsertRowNode getInsertRowNode(String devicePath, long time) throws MetadataException {
+ private InsertRowNode getInsertRowNode(String devicePath, long time)
+ throws MetadataException, QueryProcessException {
TSDataType[] dataTypes = new TSDataType[] {TSDataType.FLOAT, TSDataType.DOUBLE};
- String[] columns = new String[] {1 + "", 1.0 + ""};
+ Object[] columns = new Object[] {1.0f, 1.0d};
PartialPath path = new PartialPath(devicePath);
String[] measurements = new String[] {"s1", "s2"};
InsertRowNode insertRowNode =
new InsertRowNode(
- new PlanNodeId("0"), path, false, measurements, dataTypes, time, columns, true);
+ new PlanNodeId(""), path, false, measurements, dataTypes, time, columns, false);
insertRowNode.setMeasurementSchemas(
new MeasurementSchema[] {
@@ -402,16 +404,27 @@ public class WALRecoverManagerTest {
bitMaps[i].mark(i % times.length);
}
- return new InsertTabletNode(
- new PlanNodeId("0"),
+
+ InsertTabletNode insertTabletNode = new InsertTabletNode(
+ new PlanNodeId(""),
new PartialPath(devicePath),
- false,
+ true,
new String[] {"s1", "s2", "s3", "s4", "s5", "s6"},
dataTypes.toArray(new TSDataType[0]),
times,
- null,
+ bitMaps,
columns,
times.length);
+ insertTabletNode.setMeasurementSchemas(
+ new MeasurementSchema[] {
+ new MeasurementSchema("s1", TSDataType.DOUBLE),
+ new MeasurementSchema("s2", TSDataType.FLOAT),
+ new MeasurementSchema("s3", TSDataType.INT64),
+ new MeasurementSchema("s4", TSDataType.INT32),
+ new MeasurementSchema("s5", TSDataType.BOOLEAN),
+ new MeasurementSchema("s6", TSDataType.TEXT)
+ });
+ return insertTabletNode;
}
private List<WALRecoverListener> prepareCrashedTsFile()
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/recover/file/TsFilePlanRedoerTest.java b/server/src/test/java/org/apache/iotdb/db/wal/recover/file/TsFilePlanRedoerTest.java
index 233f5b65af..c3310c2d95 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/recover/file/TsFilePlanRedoerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/recover/file/TsFilePlanRedoerTest.java
@@ -79,15 +79,18 @@ public class TsFilePlanRedoerTest {
private CompressionType compressionType;
boolean prevIsAutoCreateSchemaEnabled;
boolean prevIsEnablePartialInsert;
+ boolean prevIsCluster;
@Before
public void setUp() throws Exception {
+ prevIsCluster = IoTDBDescriptor.getInstance().getConfig().isClusterMode();
EnvironmentUtils.envSetUp();
+ IoTDBDescriptor.getInstance().getConfig().setClusterMode(true);
// set recover config, avoid creating deleted time series when recovering wal
prevIsAutoCreateSchemaEnabled =
IoTDBDescriptor.getInstance().getConfig().isAutoCreateSchemaEnabled();
- IoTDBDescriptor.getInstance().getConfig().setAutoCreateSchemaEnabled(false);
+// IoTDBDescriptor.getInstance().getConfig().setAutoCreateSchemaEnabled(false);
prevIsEnablePartialInsert = IoTDBDescriptor.getInstance().getConfig().isEnablePartialInsert();
IoTDBDescriptor.getInstance().getConfig().setEnablePartialInsert(true);
compressionType = TSFileDescriptor.getInstance().getConfig().getCompressor();
@@ -140,11 +143,12 @@ public class TsFilePlanRedoerTest {
if (modsFile.exists()) {
modsFile.delete();
}
+ IoTDBDescriptor.getInstance().getConfig().setClusterMode(prevIsCluster);
EnvironmentUtils.cleanEnv();
// reset config
- IoTDBDescriptor.getInstance()
- .getConfig()
- .setAutoCreateSchemaEnabled(prevIsAutoCreateSchemaEnabled);
+// IoTDBDescriptor.getInstance()
+// .getConfig()
+// .setAutoCreateSchemaEnabled(prevIsAutoCreateSchemaEnabled);
IoTDBDescriptor.getInstance().getConfig().setEnablePartialInsert(prevIsEnablePartialInsert);
}
@@ -162,7 +166,7 @@ public class TsFilePlanRedoerTest {
// generate InsertRowPlan
long time = 5;
TSDataType[] dataTypes = new TSDataType[] {TSDataType.FLOAT, TSDataType.DOUBLE};
- String[] columns = new String[] {1 + "", 1.0 + ""};
+ Object[] columns = new Object[] {1f, 1.0d};
InsertRowNode insertRowNode =
new InsertRowNode(
new PlanNodeId("0"),
@@ -172,7 +176,11 @@ public class TsFilePlanRedoerTest {
dataTypes,
time,
columns,
- true);
+ false);
+ insertRowNode.setMeasurementSchemas(new MeasurementSchema[] {
+ new MeasurementSchema("s1", TSDataType.FLOAT),
+ new MeasurementSchema("s2", TSDataType.DOUBLE),
+ });
// redo InsertTabletPlan, vsg processor is used to test IdTable, don't test IdTable here
TsFilePlanRedoer planRedoer = new TsFilePlanRedoer(tsFileResource, true, null);
@@ -225,7 +233,7 @@ public class TsFilePlanRedoerTest {
new TSDataType[] {
TSDataType.INT32, TSDataType.INT64, TSDataType.BOOLEAN, TSDataType.FLOAT, TSDataType.TEXT
};
- String[] columns = new String[] {1 + "", 1 + "", true + "", 1.0 + "", "1"};
+ Object[] columns = new Object[] {1, 1L, true, 1.0f, new Binary("1")};
InsertRowNode insertRowNode =
new InsertRowNode(
@@ -236,7 +244,14 @@ public class TsFilePlanRedoerTest {
dataTypes,
time,
columns,
- true);
+ false);
+ insertRowNode.setMeasurementSchemas(new MeasurementSchema[] {
+ new MeasurementSchema("s1", TSDataType.INT32),
+ new MeasurementSchema("s2", TSDataType.INT64),
+ new MeasurementSchema("s3", TSDataType.BOOLEAN),
+ new MeasurementSchema("s4", TSDataType.FLOAT),
+ new MeasurementSchema("s5", TSDataType.TEXT),
+ });
// redo InsertTabletPlan, vsg processor is used to test IdTable, don't test IdTable here
TsFilePlanRedoer planRedoer = new TsFilePlanRedoer(tsFileResource, true, null);
@@ -317,6 +332,10 @@ public class TsFilePlanRedoerTest {
bitMaps,
columns,
times.length);
+ insertTabletNode.setMeasurementSchemas(new MeasurementSchema[] {
+ new MeasurementSchema("s1", TSDataType.INT32),
+ new MeasurementSchema("s2", TSDataType.INT64),
+ });
// redo InsertTabletPlan, vsg processor is used to test IdTable, don't test IdTable here
TsFilePlanRedoer planRedoer = new TsFilePlanRedoer(tsFileResource, true, null);
@@ -413,6 +432,14 @@ public class TsFilePlanRedoerTest {
bitMaps,
columns,
times.length);
+ insertTabletNode.setMeasurementSchemas(new MeasurementSchema[] {
+ new MeasurementSchema("s1", TSDataType.INT32),
+ new MeasurementSchema("s2", TSDataType.INT64),
+ new MeasurementSchema("s3", TSDataType.BOOLEAN),
+ new MeasurementSchema("s4", TSDataType.FLOAT),
+ new MeasurementSchema("s5", TSDataType.TEXT),
+ });
+
// redo InsertTabletPlan, vsg processor is used to test IdTable, don't test IdTable here
TsFilePlanRedoer planRedoer = new TsFilePlanRedoer(tsFileResource, true, null);
@@ -533,6 +560,10 @@ public class TsFilePlanRedoerTest {
null,
columns,
times.length);
+ insertTabletNode.setMeasurementSchemas(new MeasurementSchema[] {
+ new MeasurementSchema("s1", TSDataType.INT32),
+ new MeasurementSchema("s2", TSDataType.INT64),
+ });
// redo InsertTabletPlan, vsg processor is used to test IdTable, don't test IdTable here
TsFilePlanRedoer planRedoer = new TsFilePlanRedoer(tsFileResource, false, null);
@@ -643,7 +674,7 @@ public class TsFilePlanRedoerTest {
}
InsertTabletNode insertTabletNode =
new InsertTabletNode(
- new PlanNodeId("0"),
+ new PlanNodeId(""),
new PartialPath(DEVICE3_NAME),
true,
new String[] {"s1", "s2", "s3", "s4", "s5"},
@@ -660,6 +691,14 @@ public class TsFilePlanRedoerTest {
times.length);
// redo InsertTabletPlan, data region is used to test IdTable, don't test IdTable here
TsFilePlanRedoer planRedoer = new TsFilePlanRedoer(tsFileResource, true, null);
+ MeasurementSchema[] schemas = new MeasurementSchema[] {
+ new MeasurementSchema("s1", TSDataType.INT32),
+ new MeasurementSchema("s2", TSDataType.INT64),
+ new MeasurementSchema("s3", TSDataType.BOOLEAN),
+ new MeasurementSchema("s4", TSDataType.FLOAT),
+ new MeasurementSchema("s5", TSDataType.TEXT)
+ };
+ insertTabletNode.setMeasurementSchemas(schemas);
planRedoer.redoInsert(insertTabletNode);
// generate InsertRowPlan
@@ -668,18 +707,19 @@ public class TsFilePlanRedoerTest {
new TSDataType[] {
TSDataType.INT32, TSDataType.INT64, TSDataType.BOOLEAN, TSDataType.FLOAT, TSDataType.TEXT
};
- String[] columns2 = new String[] {400 + "", 400 + "", true + "", 400.0 + "", "400"};
+ Object[] columns2 = new Object[] {400, 400L, true, 400.0f, new Binary("400")};
// redo InsertTabletPlan, data region is used to test IdTable, don't test IdTable here
InsertRowNode insertRowNode =
new InsertRowNode(
- new PlanNodeId("0"),
+ new PlanNodeId(""),
new PartialPath(DEVICE3_NAME),
true,
new String[] {"s1", "s2", "s3", "s4", "s5"},
dataTypes2,
time,
columns2,
- true);
+ false);
+ insertRowNode.setMeasurementSchemas(schemas);
planRedoer.redoInsert(insertRowNode);
// check data in memTable
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java b/server/src/test/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java
index b3bcbf9bf6..c5a39585e8 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/recover/file/UnsealedTsFileRecoverPerformerTest.java
@@ -19,6 +19,8 @@
package org.apache.iotdb.db.wal.recover.file;
import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.conf.IoTDBConfig;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.engine.modification.ModificationFile;
import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
@@ -64,6 +66,8 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
public class UnsealedTsFileRecoverPerformerTest {
+
+ private static final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
private static final String SG_NAME = "root.recover_sg";
private static final String DEVICE1_NAME = SG_NAME.concat(".d1");
private static final String DEVICE2_NAME = SG_NAME.concat(".d2");
@@ -71,10 +75,14 @@ public class UnsealedTsFileRecoverPerformerTest {
TsFileUtilsForRecoverTest.getTestTsFilePath(SG_NAME, 0, 0, 1);
private TsFileResource tsFileResource;
+ private boolean isClusterMode;
+
@Before
public void setUp() throws Exception {
EnvironmentUtils.cleanDir(new File(FILE_NAME).getParent());
EnvironmentUtils.envSetUp();
+ isClusterMode = config.isClusterMode();
+ config.setClusterMode(true);
IoTDB.schemaProcessor.setStorageGroup(new PartialPath(SG_NAME));
IoTDB.schemaProcessor.createTimeseries(
new PartialPath(DEVICE1_NAME.concat(".s1")),
@@ -107,6 +115,7 @@ public class UnsealedTsFileRecoverPerformerTest {
if (tsFileResource != null) {
tsFileResource.close();
}
+ config.setClusterMode(isClusterMode);
EnvironmentUtils.cleanDir(new File(FILE_NAME).getParent());
EnvironmentUtils.cleanEnv();
}
@@ -121,17 +130,17 @@ public class UnsealedTsFileRecoverPerformerTest {
// generate InsertRowPlan
long time = 4;
TSDataType[] dataTypes = new TSDataType[] {TSDataType.FLOAT, TSDataType.DOUBLE};
- String[] columns = new String[] {1 + "", 1.0 + ""};
+ Object[] columns = new Object[] {1.0f, 1.0d};
InsertRowNode insertRowNode =
new InsertRowNode(
- new PlanNodeId("0"),
+ new PlanNodeId(""),
new PartialPath(DEVICE2_NAME),
false,
new String[] {"s1", "s2"},
dataTypes,
time,
columns,
- true);
+ false);
insertRowNode.setMeasurementSchemas(
new MeasurementSchema[] {
new MeasurementSchema("s1", TSDataType.FLOAT),