You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2021/09/16 05:53:19 UTC
[iotdb] 01/01: Correct the memory calculation of vector in MemTable
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch VectorTest
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 2edf472ab17ae3f19b59baad1e07fc307cf56c82
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Thu Sep 16 13:52:48 2021 +0800
Correct the memory calculation of vector in MemTable
---
.../java/org/apache/iotdb/db/utils/MemUtils.java | 34 +++++++++-------------
1 file changed, 13 insertions(+), 21 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java
index 564c39d..9a3363a 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java
@@ -101,40 +101,32 @@ public class MemUtils {
return 0L;
}
long memSize = 0;
- int columnCount = 0;
+ boolean hasVector = false;
for (int i = 0; i < insertTabletPlan.getMeasurementMNodes().length; i++) {
if (insertTabletPlan.getMeasurementMNodes()[i] == null) {
- columnCount++;
continue;
}
IMeasurementSchema schema = insertTabletPlan.getMeasurementMNodes()[i].getSchema();
+ TSDataType valueType;
if (schema.getType() == TSDataType.VECTOR) {
- // time and index column memSize
- memSize += (end - start) * (8L + 4L);
+ hasVector = true;
// value columns memSize
- for (TSDataType type : schema.getSubMeasurementsTSDataTypeList()) {
- if (type == TSDataType.TEXT && addingTextDataSize) {
- for (int j = start; j < end; j++) {
- memSize += getBinarySize(((Binary[]) insertTabletPlan.getColumns()[columnCount])[j]);
- }
- } else {
- memSize += (end - start) * type.getDataTypeSize();
- }
- columnCount++;
- }
+ valueType = schema.getSubMeasurementsTSDataTypeList().get(i);
} else {
// time column memSize
memSize += (end - start) * 8L;
- if (insertTabletPlan.getDataTypes()[columnCount] == TSDataType.TEXT && addingTextDataSize) {
- for (int j = start; j < end; j++) {
- memSize += getBinarySize(((Binary[]) insertTabletPlan.getColumns()[columnCount])[j]);
- }
- } else {
- memSize += (end - start) * insertTabletPlan.getDataTypes()[columnCount].getDataTypeSize();
+ valueType = insertTabletPlan.getDataTypes()[i];
+ }
+ if (valueType == TSDataType.TEXT && addingTextDataSize) {
+ for (int j = start; j < end; j++) {
+ memSize += getBinarySize(((Binary[]) insertTabletPlan.getColumns()[i])[j]);
}
- columnCount++;
+ } else {
+ memSize += (long)(end - start) * valueType.getDataTypeSize();
}
}
+ // time and index column memSize for vector
+ memSize += hasVector ? (end - start) * (8L + 4L) : 0L;
return memSize;
}