From db66409d5ae708f8461333e13b89a43098316698 Mon Sep 17 00:00:00 2001 From: shuwenwei Date: Thu, 8 Oct 2026 18:42:08 +0800 Subject: [PATCH] refactor: remove IDeviceID.isTableModel Use the table schema map to identify table-model writes when recording table point counts and sizes. --- .../org/apache/tsfile/file/metadata/IDeviceID.java | 2 -- .../org/apache/tsfile/file/metadata/PlainDeviceID.java | 5 ----- .../tsfile/file/metadata/StringArrayDeviceID.java | 6 ------ .../org/apache/tsfile/write/writer/TsFileIOWriter.java | 4 ++-- .../org/apache/tsfile/file/metadata/IDeviceIDTest.java | 10 ---------- 5 files changed, 2 insertions(+), 25 deletions(-) diff --git a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/IDeviceID.java b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/IDeviceID.java index d595ca659..85b90ccbe 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/IDeviceID.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/IDeviceID.java @@ -46,8 +46,6 @@ public interface IDeviceID extends Comparable, Accountable, Serializa boolean isEmpty(); - boolean isTableModel(); - /** * @return the table name associated with the device. For a path-DeviceId, like "root.a.b.c.d", it * is converted according to a fixed rule, like assuming the first three levels ("root.a.b") diff --git a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/PlainDeviceID.java b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/PlainDeviceID.java index ccc8ce2c2..cc93350f1 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/PlainDeviceID.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/PlainDeviceID.java @@ -110,11 +110,6 @@ public boolean isEmpty() { return deviceID.isEmpty(); } - @Override - public boolean isTableModel() { - return false; - } - @Override public long ramBytesUsed() { long size = INSTANCE_SIZE; diff --git a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java index bc5233f08..ce42cbd41 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java @@ -37,7 +37,6 @@ import java.util.Arrays; import java.util.Objects; -import static org.apache.tsfile.common.constant.TsFileConstant.PATH_ROOT; import static org.apache.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR; public class StringArrayDeviceID implements IDeviceID { @@ -222,11 +221,6 @@ public boolean isEmpty() { return segments == null || segments.length == 0; } - @Override - public boolean isTableModel() { - return !segments[0].startsWith(PATH_ROOT + PATH_SEPARATOR); - } - @Override public String toString() { return String.join(PATH_SEPARATOR, segments); diff --git a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java index 93ddec569..5e1d33c21 100644 --- a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java +++ b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java @@ -447,7 +447,7 @@ public void endCurrentChunk() { chunkMetadataCount++; if (recordTablePointCount && currentChunkGroupDeviceId != null - && currentChunkGroupDeviceId.isTableModel() + && schema.getTableSchemaMap().containsKey(currentChunkGroupDeviceId.getTableName()) && (currentChunkMetadata.getMask() & TsFileConstant.TIME_COLUMN_MASK) == 0) { tablePointCountMap.merge( currentChunkGroupDeviceId.getTableName(), @@ -956,7 +956,7 @@ private void updateTableSize(IDeviceID currentStartChunkGroupDeviceId) throws IO // endFile boolean endFile = currentStartChunkGroupDeviceId == null; if (endFile - || (currentStartChunkGroupDeviceId.isTableModel() + || (schema.getTableSchemaMap().containsKey(currentStartChunkGroupDeviceId.getTableName()) && !currentStartChunkGroupDeviceId.getTableName().equals(currentTable))) { if (currentTable != null) { long size = currentPosition - currentTableStartOffset; diff --git a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/IDeviceIDTest.java b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/IDeviceIDTest.java index 0fc02aa7f..29c8dd7f2 100644 --- a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/IDeviceIDTest.java +++ b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/IDeviceIDTest.java @@ -63,16 +63,6 @@ public void testStartWith() { assertTrue(deviceID.startWith("root.a")); } - @Test - public void testIsTableModel() { - IDeviceID deviceID = Factory.DEFAULT_FACTORY.create("root.a.b.c.d"); - assertFalse(deviceID.isTableModel()); - deviceID = Factory.DEFAULT_FACTORY.create("root.b.c"); - assertFalse(deviceID.isTableModel()); - deviceID = Factory.DEFAULT_FACTORY.create("roota.b.c.d"); - assertTrue(deviceID.isTableModel()); - } - @Test public void testMatchDatabaseName() { IDeviceID deviceID = Factory.DEFAULT_FACTORY.create("root.a.b.c.d");