You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2023/01/03 03:35:39 UTC
[iotdb] 01/01: [IOTDB-5309] Wrong calculation for retained size of tsblock calculate
This is an automated email from the ASF dual-hosted git repository.
xiangweiwei pushed a commit to branch iotdb5309-1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 35da73ba46a0c92747efc37f50724575c0f5e007
Author: Xiangwei Wei <34...@users.noreply.github.com>
AuthorDate: Tue Jan 3 09:01:50 2023 +0800
[IOTDB-5309] Wrong calculation for retained size of tsblock calculate
(cherry picked from commit 954e682fa147d45b7982dbd55f2564cde8d54c20)
---
.../java/org/apache/iotdb/tsfile/read/common/block/TsBlock.java | 3 +--
.../apache/iotdb/tsfile/read/common/block/column/BinaryColumn.java | 6 ++++--
.../apache/iotdb/tsfile/read/common/block/column/BooleanColumn.java | 5 +++--
.../apache/iotdb/tsfile/read/common/block/column/DoubleColumn.java | 6 ++++--
.../apache/iotdb/tsfile/read/common/block/column/FloatColumn.java | 6 ++++--
.../org/apache/iotdb/tsfile/read/common/block/column/IntColumn.java | 6 ++++--
.../apache/iotdb/tsfile/read/common/block/column/LongColumn.java | 6 ++++--
.../apache/iotdb/tsfile/read/common/block/column/TimeColumn.java | 4 ++--
8 files changed, 26 insertions(+), 16 deletions(-)
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlock.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlock.java
index 70dad931fb..3c2f6a58d6 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlock.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlock.java
@@ -30,7 +30,6 @@ import org.openjdk.jol.info.ClassLayout;
import java.util.Arrays;
import java.util.Iterator;
-import static io.airlift.slice.SizeOf.sizeOf;
import static java.lang.String.format;
import static java.util.Objects.requireNonNull;
@@ -471,7 +470,7 @@ public class TsBlock {
}
private long updateRetainedSize() {
- long retainedSizeInBytes = INSTANCE_SIZE + sizeOf(valueColumns);
+ long retainedSizeInBytes = INSTANCE_SIZE;
retainedSizeInBytes += timeColumn.getRetainedSizeInBytes();
for (Column column : valueColumns) {
retainedSizeInBytes += column.getRetainedSizeInBytes();
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumn.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumn.java
index 85d910fd88..aeca614dfe 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumn.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumn.java
@@ -27,7 +27,8 @@ import org.openjdk.jol.info.ClassLayout;
import java.util.Arrays;
import java.util.Optional;
-import static io.airlift.slice.SizeOf.sizeOf;
+import static io.airlift.slice.SizeOf.sizeOfBooleanArray;
+import static io.airlift.slice.SizeOf.sizeOfObjectArray;
import static org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
public class BinaryColumn implements Column {
@@ -67,7 +68,8 @@ public class BinaryColumn implements Column {
this.valueIsNull = valueIsNull;
// TODO we need to sum up all the Binary's retainedSize here
- retainedSizeInBytes = INSTANCE_SIZE + sizeOf(valueIsNull) + sizeOf(values);
+ retainedSizeInBytes =
+ INSTANCE_SIZE + sizeOfBooleanArray(positionCount) + sizeOfObjectArray(positionCount);
}
@Override
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumn.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumn.java
index 5dc1d427b6..9da7b58b04 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumn.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumn.java
@@ -26,7 +26,7 @@ import org.openjdk.jol.info.ClassLayout;
import java.util.Arrays;
import java.util.Optional;
-import static io.airlift.slice.SizeOf.sizeOf;
+import static io.airlift.slice.SizeOf.sizeOfBooleanArray;
import static org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
public class BooleanColumn implements Column {
@@ -66,7 +66,8 @@ public class BooleanColumn implements Column {
}
this.valueIsNull = valueIsNull;
- retainedSizeInBytes = (INSTANCE_SIZE + sizeOf(valueIsNull) + sizeOf(values));
+ retainedSizeInBytes =
+ INSTANCE_SIZE + sizeOfBooleanArray(positionCount) + sizeOfBooleanArray(positionCount);
}
@Override
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumn.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumn.java
index 9b13800838..56f0cc7de2 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumn.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumn.java
@@ -26,7 +26,8 @@ import org.openjdk.jol.info.ClassLayout;
import java.util.Arrays;
import java.util.Optional;
-import static io.airlift.slice.SizeOf.sizeOf;
+import static io.airlift.slice.SizeOf.sizeOfBooleanArray;
+import static io.airlift.slice.SizeOf.sizeOfDoubleArray;
import static org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
public class DoubleColumn implements Column {
@@ -66,7 +67,8 @@ public class DoubleColumn implements Column {
}
this.valueIsNull = valueIsNull;
- retainedSizeInBytes = (INSTANCE_SIZE + sizeOf(valueIsNull) + sizeOf(values));
+ retainedSizeInBytes =
+ INSTANCE_SIZE + sizeOfBooleanArray(positionCount) + sizeOfDoubleArray(positionCount);
}
@Override
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumn.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumn.java
index 4d8f3e0440..bb3e180ab1 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumn.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumn.java
@@ -26,7 +26,8 @@ import org.openjdk.jol.info.ClassLayout;
import java.util.Arrays;
import java.util.Optional;
-import static io.airlift.slice.SizeOf.sizeOf;
+import static io.airlift.slice.SizeOf.sizeOfBooleanArray;
+import static io.airlift.slice.SizeOf.sizeOfFloatArray;
import static org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
public class FloatColumn implements Column {
@@ -65,7 +66,8 @@ public class FloatColumn implements Column {
}
this.valueIsNull = valueIsNull;
- retainedSizeInBytes = (INSTANCE_SIZE + sizeOf(valueIsNull) + sizeOf(values));
+ retainedSizeInBytes =
+ INSTANCE_SIZE + sizeOfFloatArray(positionCount) + sizeOfBooleanArray(positionCount);
}
@Override
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumn.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumn.java
index 120e4f44da..38cf078a9f 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumn.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumn.java
@@ -26,7 +26,8 @@ import org.openjdk.jol.info.ClassLayout;
import java.util.Arrays;
import java.util.Optional;
-import static io.airlift.slice.SizeOf.sizeOf;
+import static io.airlift.slice.SizeOf.sizeOfBooleanArray;
+import static io.airlift.slice.SizeOf.sizeOfIntArray;
import static org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
public class IntColumn implements Column {
@@ -65,7 +66,8 @@ public class IntColumn implements Column {
}
this.valueIsNull = valueIsNull;
- retainedSizeInBytes = INSTANCE_SIZE + sizeOf(valueIsNull) + sizeOf(values);
+ retainedSizeInBytes =
+ INSTANCE_SIZE + sizeOfIntArray(positionCount) + sizeOfBooleanArray(positionCount);
}
@Override
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumn.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumn.java
index b87b61d2b3..a67fef0fa1 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumn.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumn.java
@@ -26,7 +26,8 @@ import org.openjdk.jol.info.ClassLayout;
import java.util.Arrays;
import java.util.Optional;
-import static io.airlift.slice.SizeOf.sizeOf;
+import static io.airlift.slice.SizeOf.sizeOfBooleanArray;
+import static io.airlift.slice.SizeOf.sizeOfLongArray;
import static org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
public class LongColumn implements Column {
@@ -65,7 +66,8 @@ public class LongColumn implements Column {
}
this.valueIsNull = valueIsNull;
- retainedSizeInBytes = INSTANCE_SIZE + sizeOf(valueIsNull) + sizeOf(values);
+ retainedSizeInBytes =
+ INSTANCE_SIZE + sizeOfLongArray(positionCount) + sizeOfBooleanArray(positionCount);
}
@Override
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumn.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumn.java
index df6232ed9f..4245bff643 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumn.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumn.java
@@ -22,7 +22,7 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.openjdk.jol.info.ClassLayout;
-import static io.airlift.slice.SizeOf.sizeOf;
+import static io.airlift.slice.SizeOf.sizeOfLongArray;
import static org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
public class TimeColumn implements Column {
@@ -56,7 +56,7 @@ public class TimeColumn implements Column {
}
this.values = values;
- retainedSizeInBytes = INSTANCE_SIZE + sizeOf(values);
+ retainedSizeInBytes = INSTANCE_SIZE + sizeOfLongArray(positionCount);
}
@Override