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) {

Reply via email to