You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by zy...@apache.org on 2022/11/23 09:04:20 UTC
[iotdb] branch master updated: Better schema file printer, not limited by length anymore (#8087)
This is an automated email from the ASF dual-hosted git repository.
zyk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new c530774ae6 Better schema file printer, not limited by length anymore (#8087)
c530774ae6 is described below
commit c530774ae620511a93937fbe82ee8a73a309a117
Author: ZhaoXin <x_...@163.com>
AuthorDate: Wed Nov 23 17:04:14 2022 +0800
Better schema file printer, not limited by length anymore (#8087)
Better schema file printer, not limited by length anymore (#8087)
---
.../store/disk/schemafile/AliasIndexPage.java | 2 +-
.../mtree/store/disk/schemafile/InternalPage.java | 2 +-
.../mtree/store/disk/schemafile/SchemaFile.java | 40 +++++++++++++---------
.../disk/schemafile/pagemgr/IPageManager.java | 5 ++-
.../store/disk/schemafile/pagemgr/PageManager.java | 10 ++++--
.../db/tools/schema/SchemaFileSketchTool.java | 3 +-
.../metadata/mtree/schemafile/SchemaFileTest.java | 3 +-
.../iotdb/db/tools/SchemaFileSketchTest.java | 14 +++++---
8 files changed, 47 insertions(+), 32 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/AliasIndexPage.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/AliasIndexPage.java
index ec1c655b3d..cc2d9b7c0f 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/AliasIndexPage.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/AliasIndexPage.java
@@ -389,7 +389,7 @@ public class AliasIndexPage extends SchemaPage implements ISegment<String, Strin
for (int i = 0; i < memberNum; i++) {
builder.append(String.format("(%s, %s),", getKeyByIndex(i), getNameByIndex(i)));
}
- builder.append("]");
+ builder.append("]\n");
return builder.toString();
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/InternalPage.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/InternalPage.java
index 7178d0f263..e61bc1b436 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/InternalPage.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/InternalPage.java
@@ -431,7 +431,7 @@ public class InternalPage extends SchemaPage implements ISegment<Integer, Intege
"(%s, %s, %s),",
getKeyByIndex(i), keyOffset(getPointerByIndex(i)), pageIndex(getPointerByIndex(i))));
}
- builder.append("]");
+ builder.append("]\n");
return builder.toString();
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java
index 93e2b417c1..f886b8169f 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java
@@ -40,6 +40,7 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
+import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
@@ -273,22 +274,29 @@ public class SchemaFile implements ISchemaFile {
}
public String inspect() throws MetadataException, IOException {
- StringBuilder builder =
- new StringBuilder(
- String.format(
- "=============================\n"
- + "== Schema File Sketch Tool ==\n"
- + "=============================\n"
- + "== Notice: \n"
- + "== Internal/Entity presents as (name, is_aligned, child_segment_address)\n"
- + "== Measurement presents as (name, data_type, encoding, compressor, alias_if_exist)\n"
- + "=============================\n"
- + "Belong to StorageGroup: [%s], segment of SG:%s, total pages:%d\n",
- storageGroupName == null ? "NOT SPECIFIED" : storageGroupName,
- Long.toHexString(lastSGAddr),
- lastPageIndex + 1));
-
- return pageManager.inspect(builder).toString();
+ return inspect(null);
+ }
+
+ public String inspect(PrintWriter pw) throws MetadataException, IOException {
+ String header =
+ String.format(
+ "=============================\n"
+ + "== Schema File Sketch Tool ==\n"
+ + "=============================\n"
+ + "== Notice: \n"
+ + "== Internal/Entity presents as (name, is_aligned, child_segment_address)\n"
+ + "== Measurement presents as (name, data_type, encoding, compressor, alias_if_exist)\n"
+ + "=============================\n"
+ + "Belong to StorageGroup: [%s], segment of SG:%s, total pages:%d\n",
+ storageGroupName == null ? "NOT SPECIFIED" : storageGroupName,
+ Long.toHexString(lastSGAddr),
+ lastPageIndex + 1);
+ if (pw == null) {
+ pw = new PrintWriter(System.out);
+ }
+ pw.print(header);
+ pageManager.inspect(pw);
+ return String.format("SchemaFile[%s] had been inspected.", this.filePath);
}
// endregion
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/pagemgr/IPageManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/pagemgr/IPageManager.java
index d87d410f75..05fdce3f85 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/pagemgr/IPageManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/pagemgr/IPageManager.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.db.metadata.mtree.store.disk.schemafile.SchemaFile;
import org.apache.iotdb.db.metadata.mtree.store.disk.schemafile.SchemaPage;
import java.io.IOException;
+import java.io.PrintWriter;
import java.util.Iterator;
/**
@@ -55,7 +56,5 @@ public interface IPageManager {
int getLastPageIndex();
- @Deprecated
- StringBuilder inspect(StringBuilder builder)
- throws IOException, MetadataException; // TODO: shift to use stream
+ void inspect(PrintWriter pw) throws IOException, MetadataException;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/pagemgr/PageManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/pagemgr/PageManager.java
index e1000a761d..e755a248bd 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/pagemgr/PageManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/pagemgr/PageManager.java
@@ -37,6 +37,7 @@ import org.slf4j.LoggerFactory;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.PrintWriter;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
@@ -428,11 +429,14 @@ public abstract class PageManager implements IPageManager {
}
@Override
- public StringBuilder inspect(StringBuilder builder) throws IOException, MetadataException {
+ public void inspect(PrintWriter pw) throws IOException, MetadataException {
+ String pageContent;
for (int i = 0; i <= lastPageIndex.get(); i++) {
- builder.append(String.format("---------------------\n%s\n", getPageInstance(i).inspect()));
+ pageContent = getPageInstance(i).inspect();
+ pw.print("---------------------\n");
+ pw.print(pageContent);
+ pw.print("\n");
}
- return builder;
}
@Override
diff --git a/server/src/main/java/org/apache/iotdb/db/tools/schema/SchemaFileSketchTool.java b/server/src/main/java/org/apache/iotdb/db/tools/schema/SchemaFileSketchTool.java
index b4d9332d12..f97fb85421 100644
--- a/server/src/main/java/org/apache/iotdb/db/tools/schema/SchemaFileSketchTool.java
+++ b/server/src/main/java/org/apache/iotdb/db/tools/schema/SchemaFileSketchTool.java
@@ -154,9 +154,8 @@ public class SchemaFileSketchTool {
pw = new PrintWriter(new FileWriter(outputFile, false));
ISchemaFile sf = SchemaFile.loadSchemaFile(SystemFileFactory.INSTANCE.getFile(inputFile));
try {
- String res = ((SchemaFile) sf).inspect();
+ String res = ((SchemaFile) sf).inspect(pw);
System.out.println(res);
- pw.print(res);
} finally {
sf.close();
pw.close();
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/mtree/schemafile/SchemaFileTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/mtree/schemafile/SchemaFileTest.java
index 238c92bd92..7430ed691d 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/mtree/schemafile/SchemaFileTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/mtree/schemafile/SchemaFileTest.java
@@ -103,7 +103,6 @@ public class SchemaFileTest {
sf.writeMNode(curNode);
}
}
- System.out.println(((SchemaFile) sf).inspect());
ICachedMNodeContainer.getCachedMNodeContainer(int0).getNewChildBuffer().clear();
addNodeToUpdateBuffer(int0, getMeasurementNode(int0, "mint1", "alas99999"));
@@ -885,7 +884,7 @@ public class SchemaFileTest {
// region Quick Print
private void printSF(ISchemaFile file) throws IOException, MetadataException {
- System.out.println(((SchemaFile) file).inspect());
+ ((SchemaFile) file).inspect();
}
public static void print(Object o) {
diff --git a/server/src/test/java/org/apache/iotdb/db/tools/SchemaFileSketchTest.java b/server/src/test/java/org/apache/iotdb/db/tools/SchemaFileSketchTest.java
index 41d13e0de7..67a6be5a8a 100644
--- a/server/src/test/java/org/apache/iotdb/db/tools/SchemaFileSketchTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/tools/SchemaFileSketchTest.java
@@ -43,6 +43,8 @@ import org.junit.Test;
import java.io.File;
import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Iterator;
@@ -106,10 +108,14 @@ public class SchemaFileSketchTest {
SchemaFileSketchTool.sketchFile(file.getAbsolutePath(), sketchFile.getAbsolutePath());
ISchemaFile sf = SchemaFile.loadSchemaFile(file);
- String sketchString = ((SchemaFile) sf).inspect();
- Assert.assertEquals(
- sketchString, new String(Files.readAllBytes(Paths.get(sketchFile.getAbsolutePath()))));
- sf.close();
+ try {
+ StringWriter sw = new StringWriter();
+ ((SchemaFile) sf).inspect(new PrintWriter(sw));
+ Assert.assertEquals(
+ sw.toString(), new String(Files.readAllBytes(Paths.get(sketchFile.getAbsolutePath()))));
+ } finally {
+ sf.close();
+ }
}
private Iterator<IMNode> getTreeBFT(IMNode root) {