This is an automated email from the ASF dual-hosted git repository.
xingtanzjr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new f2b78558a1f fix bugs and code smells of dir:engine/memtable (#10306)
f2b78558a1f is described below
commit f2b78558a1fb288acf7505eb6b87b9bc80efc043
Author: Zhijia Cao <[email protected]>
AuthorDate: Mon Jun 26 14:18:47 2023 +0800
fix bugs and code smells of dir:engine/memtable (#10306)
---
.../iotdb/db/engine/memtable/AbstractMemTable.java | 27 ++++++++--------------
.../engine/memtable/AlignedWritableMemChunk.java | 11 ++++-----
.../memtable/AlignedWritableMemChunkGroup.java | 1 +
.../iotdb/db/engine/memtable/WritableMemChunk.java | 2 +-
.../db/engine/memtable/WritableMemChunkGroup.java | 1 +
5 files changed, 17 insertions(+), 25 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
index b4417488961..321a43a1d71 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
@@ -44,9 +44,6 @@ import org.apache.iotdb.tsfile.utils.Pair;
import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.DataInputStream;
import java.io.IOException;
import java.util.ArrayList;
@@ -62,7 +59,6 @@ public abstract class AbstractMemTable implements IMemTable {
/** each memTable node has a unique int value identifier, init when
recovering wal */
public static final AtomicLong memTableIdCounter = new AtomicLong(-1);
- private static final Logger logger =
LoggerFactory.getLogger(AbstractMemTable.class);
private static final int FIXED_SERIALIZED_SIZE = Byte.BYTES + 2 *
Integer.BYTES + 6 * Long.BYTES;
private static final DeviceIDFactory deviceIDFactory =
DeviceIDFactory.getInstance();
@@ -103,11 +99,11 @@ public abstract class AbstractMemTable implements
IMemTable {
private static final String METRIC_POINT_IN = "pointsIn";
- public AbstractMemTable() {
+ protected AbstractMemTable() {
this.memTableMap = new HashMap<>();
}
- public AbstractMemTable(Map<IDeviceID, IWritableMemChunkGroup> memTableMap) {
+ protected AbstractMemTable(Map<IDeviceID, IWritableMemChunkGroup>
memTableMap) {
this.memTableMap = memTableMap;
}
@@ -172,19 +168,16 @@ public abstract class AbstractMemTable implements
IMemTable {
int nullPointsNumber = 0;
for (int i = 0; i < insertRowNode.getMeasurements().length; i++) {
// use measurements[i] to ignore failed partial insert
- if (measurements[i] == null) {
- schemaList.add(null);
- continue;
- }
- // use values[i] to ignore null value
- if (values[i] == null) {
+ if (measurements[i] == null || values[i] == null) {
+ if (values[i] == null) {
+ nullPointsNumber++;
+ }
schemaList.add(null);
- nullPointsNumber++;
- continue;
+ } else {
+ IMeasurementSchema schema = insertRowNode.getMeasurementSchemas()[i];
+ schemaList.add(schema);
+ dataTypes.add(schema.getType());
}
- IMeasurementSchema schema = insertRowNode.getMeasurementSchemas()[i];
- schemaList.add(schema);
- dataTypes.add(schema.getType());
}
memSize += MemUtils.getRecordsSize(dataTypes, values, disableMemControl);
write(insertRowNode.getDeviceID(), schemaList, insertRowNode.getTime(),
values);
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunk.java
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunk.java
index 538ea0f64ee..0747976b19e 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunk.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunk.java
@@ -33,9 +33,6 @@ import org.apache.iotdb.tsfile.write.chunk.IChunkWriter;
import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.DataInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -53,11 +50,10 @@ public class AlignedWritableMemChunk implements
IWritableMemChunk {
private final List<IMeasurementSchema> schemaList;
private AlignedTVList list;
- private static final int maxNumberOfPointsInPage =
+ private static final int MAX_NUMBER_OF_POINTS_IN_PAGE =
TSFileDescriptor.getInstance().getConfig().getMaxNumberOfPointsInPage();
private static final String UNSUPPORTED_TYPE = "Unsupported data type:";
- private static final Logger LOGGER =
LoggerFactory.getLogger(AlignedWritableMemChunk.class);
public AlignedWritableMemChunk(List<IMeasurementSchema> schemaList) {
this.measurementIndexMap = new LinkedHashMap<>();
@@ -322,6 +318,7 @@ public class AlignedWritableMemChunk implements
IWritableMemChunk {
return new AlignedChunkWriterImpl(schemaList);
}
+ @SuppressWarnings({"squid:S6541", "squid:S3776"})
@Override
public void encode(IChunkWriter chunkWriter) {
AlignedChunkWriterImpl alignedChunkWriter = (AlignedChunkWriterImpl)
chunkWriter;
@@ -335,7 +332,7 @@ public class AlignedWritableMemChunk implements
IWritableMemChunk {
pageRange.add(sortedRowIndex);
}
range++;
- if (range == maxNumberOfPointsInPage) {
+ if (range == MAX_NUMBER_OF_POINTS_IN_PAGE) {
pageRange.add(sortedRowIndex);
range = 0;
}
@@ -426,7 +423,7 @@ public class AlignedWritableMemChunk implements
IWritableMemChunk {
alignedChunkWriter.nextColumn();
}
- long[] times = new long[maxNumberOfPointsInPage];
+ long[] times = new long[MAX_NUMBER_OF_POINTS_IN_PAGE];
int pointsInPage = 0;
for (int sortedRowIndex = pageRange.get(pageNum * 2);
sortedRowIndex <= pageRange.get(pageNum * 2 + 1);
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunkGroup.java
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunkGroup.java
index d3834ccce8f..de8a59e6c67 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunkGroup.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunkGroup.java
@@ -94,6 +94,7 @@ public class AlignedWritableMemChunkGroup implements
IWritableMemChunkGroup {
return Collections.singletonMap("", memChunk);
}
+ @SuppressWarnings("squid:S3776")
@Override
public int delete(
PartialPath originalPath, PartialPath devicePath, long startTimestamp,
long endTimestamp) {
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
index 57c9c0fece8..8b856c62380 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
@@ -330,7 +330,7 @@ public class WritableMemChunk implements IWritableMemChunk {
// store last point for SDT
if (sortedRowIndex + 1 == list.rowCount()) {
- ((ChunkWriterImpl) chunkWriterImpl).setLastPoint(true);
+ chunkWriterImpl.setLastPoint(true);
}
switch (schema.getType()) {
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunkGroup.java
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunkGroup.java
index 6e763b69469..29685e0b8b3 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunkGroup.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunkGroup.java
@@ -114,6 +114,7 @@ public class WritableMemChunkGroup implements
IWritableMemChunkGroup {
return memChunkMap;
}
+ @SuppressWarnings("squid:S3776")
@Override
public int delete(
PartialPath originalPath, PartialPath devicePath, long startTimestamp,
long endTimestamp) {