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);
+ }
}