This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch dev/1.1
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/dev/1.1 by this push:
new 10e9ea5b Fix (#509)
10e9ea5b is described below
commit 10e9ea5b54879bb9c58b71be9e26a6537e447cf8
Author: Caideyipi <[email protected]>
AuthorDate: Mon Jun 9 12:29:20 2025 +0800
Fix (#509)
---
.../apache/tsfile/write/schema/IMeasurementSchema.java | 3 ++-
.../apache/tsfile/write/schema/MeasurementSchema.java | 11 +++++++++++
.../tsfile/write/schema/VectorMeasurementSchema.java | 17 +++++++++++++++++
3 files changed, 30 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 da474aec..9ebfbef4 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;
@@ -30,7 +31,7 @@ import java.nio.ByteBuffer;
import java.util.List;
import java.util.Map;
-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 680a43cd..545d9cc2 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
@@ -24,6 +24,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;
@@ -45,6 +46,9 @@ 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 measurementId;
private byte type;
@@ -446,4 +450,11 @@ public class MeasurementSchema
public void setCompressor(byte compressor) {
this.compressor = compressor;
}
+
+ @Override
+ public long ramBytesUsed() {
+ return INSTANCE_SIZE
+ + RamUsageEstimator.sizeOf(measurementId)
+ + 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 1a24538a..9b157540 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);
+ }
}