This is an automated email from the ASF dual-hosted git repository.

jiangtian pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git


The following commit(s) were added to refs/heads/develop by this push:
     new 6672d2da Fix (#508)
6672d2da is described below

commit 6672d2dade4fb3b44f0c663a12a2c9d1c6bb698e
Author: Caideyipi <[email protected]>
AuthorDate: Mon Jun 9 12:19:00 2025 +0800

    Fix (#508)
---
 .../apache/tsfile/write/schema/IMeasurementSchema.java  |  3 ++-
 .../apache/tsfile/write/schema/MeasurementSchema.java   | 12 ++++++++++++
 .../tsfile/write/schema/VectorMeasurementSchema.java    | 17 +++++++++++++++++
 3 files changed, 31 insertions(+), 1 deletion(-)

diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/write/schema/IMeasurementSchema.java
 
b/java/tsfile/src/main/java/org/apache/tsfile/write/schema/IMeasurementSchema.java
index 740e76a5..ef83b4bb 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/write/schema/IMeasurementSchema.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/write/schema/IMeasurementSchema.java
@@ -23,6 +23,7 @@ import org.apache.tsfile.encoding.encoder.Encoder;
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.file.metadata.enums.CompressionType;
 import org.apache.tsfile.file.metadata.enums.TSEncoding;
+import org.apache.tsfile.utils.Accountable;
 
 import java.io.IOException;
 import java.io.OutputStream;
@@ -31,7 +32,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-public interface IMeasurementSchema {
+public interface IMeasurementSchema extends Accountable {
 
   MeasurementSchemaType getSchemaType();
 
diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/write/schema/MeasurementSchema.java
 
b/java/tsfile/src/main/java/org/apache/tsfile/write/schema/MeasurementSchema.java
index 6c36dfe1..f63c2dc2 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/write/schema/MeasurementSchema.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/write/schema/MeasurementSchema.java
@@ -25,6 +25,7 @@ import org.apache.tsfile.encoding.encoder.TSEncodingBuilder;
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.file.metadata.enums.CompressionType;
 import org.apache.tsfile.file.metadata.enums.TSEncoding;
+import org.apache.tsfile.utils.RamUsageEstimator;
 import org.apache.tsfile.utils.ReadWriteIOUtils;
 import org.apache.tsfile.utils.StringContainer;
 
@@ -47,6 +48,10 @@ import java.util.Objects;
 public class MeasurementSchema
     implements IMeasurementSchema, Comparable<MeasurementSchema>, Serializable 
{
 
+  private static final long INSTANCE_SIZE =
+      RamUsageEstimator.shallowSizeOfInstance(MeasurementSchema.class)
+          + RamUsageEstimator.shallowSizeOfInstance(TSEncodingBuilder.class);
+
   private String measurementName;
   private TSDataType dataType;
   private TSEncoding encoding;
@@ -455,4 +460,11 @@ public class MeasurementSchema
   public void setCompressionType(CompressionType compressionType) {
     this.compressionType = compressionType;
   }
+
+  @Override
+  public long ramBytesUsed() {
+    return INSTANCE_SIZE
+        + RamUsageEstimator.sizeOf(measurementName)
+        + RamUsageEstimator.sizeOfMap(props);
+  }
 }
diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/write/schema/VectorMeasurementSchema.java
 
b/java/tsfile/src/main/java/org/apache/tsfile/write/schema/VectorMeasurementSchema.java
index ab63a752..c53fee32 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/write/schema/VectorMeasurementSchema.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/write/schema/VectorMeasurementSchema.java
@@ -25,6 +25,7 @@ import org.apache.tsfile.encoding.encoder.TSEncodingBuilder;
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.file.metadata.enums.CompressionType;
 import org.apache.tsfile.file.metadata.enums.TSEncoding;
+import org.apache.tsfile.utils.RamUsageEstimator;
 import org.apache.tsfile.utils.ReadWriteIOUtils;
 import org.apache.tsfile.utils.StringContainer;
 
@@ -42,6 +43,10 @@ import java.util.Objects;
 
 public class VectorMeasurementSchema
     implements IMeasurementSchema, Comparable<VectorMeasurementSchema>, 
Serializable {
+  private static final long INSTANCE_SIZE =
+      RamUsageEstimator.shallowSizeOfInstance(VectorMeasurementSchema.class);
+  private static final long BUILDER_SIZE =
+      RamUsageEstimator.shallowSizeOfInstance(TSEncodingBuilder.class);
 
   private String deviceId;
   private Map<String, Integer> measurementsToIndexMap;
@@ -422,4 +427,16 @@ public class VectorMeasurementSchema
     sc.addTail(CompressionType.deserialize(compressor).toString());
     return sc.toString();
   }
+
+  @Override
+  public long ramBytesUsed() {
+    return INSTANCE_SIZE
+        + RamUsageEstimator.sizeOf(deviceId)
+        + RamUsageEstimator.sizeOf(types)
+        + RamUsageEstimator.sizeOf(encodings)
+        + (long) encodingConverters.length * 
RamUsageEstimator.NUM_BYTES_OBJECT_REF
+        + Arrays.stream(encodingConverters)
+            .map(o -> Objects.nonNull(o) ? BUILDER_SIZE : 0)
+            .reduce(0L, Long::sum);
+  }
 }

Reply via email to