You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2022/11/08 02:52:31 UTC

[iotdb] branch InspiredByTrino created (now a5cf63b8e4)

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

jackietien pushed a change to branch InspiredByTrino
in repository https://gitbox.apache.org/repos/asf/iotdb.git


      at a5cf63b8e4 Add java doc for some class which are inspired or copied from Trino

This branch includes the following new commits:

     new a5cf63b8e4 Add java doc for some class which are inspired or copied from Trino

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[iotdb] 01/01: Add java doc for some class which are inspired or copied from Trino

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch InspiredByTrino
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit a5cf63b8e4c2b1c05280bec0b793c29a9149e8dd
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Tue Nov 8 10:52:16 2022 +0800

    Add java doc for some class which are inspired or copied from Trino
---
 .../java/org/apache/iotdb/db/mpp/execution/QueryState.java |  6 ++++++
 .../org/apache/iotdb/db/mpp/execution/StateMachine.java    |  5 ++++-
 .../org/apache/iotdb/db/mpp/execution/driver/Driver.java   |  6 ++++++
 .../db/mpp/execution/fragment/FragmentInstanceState.java   |  6 ++++++
 .../execution/fragment/FragmentInstanceStateMachine.java   |  6 ++++++
 .../iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java   |  7 ++++++-
 .../org/apache/iotdb/tsfile/read/common/block/TsBlock.java | 14 ++++++++++----
 .../iotdb/tsfile/read/common/block/TsBlockBuilder.java     |  8 ++++++++
 .../tsfile/read/common/block/TsBlockBuilderStatus.java     |  6 ++++++
 .../iotdb/tsfile/read/common/block/column/Column.java      |  6 ++++++
 .../tsfile/read/common/block/column/ColumnBuilder.java     |  6 ++++++
 .../read/common/block/column/ColumnBuilderStatus.java      |  6 ++++++
 12 files changed, 76 insertions(+), 6 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/QueryState.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/QueryState.java
index 8cd69763c2..5deacec5e0 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/QueryState.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/QueryState.java
@@ -24,6 +24,12 @@ import java.util.stream.Stream;
 
 import static com.google.common.collect.ImmutableSet.toImmutableSet;
 
+/**
+ * This class is inspired by
+ *
+ * <p><a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-main/src/main/java/io/trino/execution/QueryState.java">Trino</a>
+ */
 public enum QueryState {
   QUEUED(false),
   PLANNED(false),
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/StateMachine.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/StateMachine.java
index c1b7e76360..4648b32c70 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/StateMachine.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/StateMachine.java
@@ -35,7 +35,10 @@ import static com.google.common.util.concurrent.Futures.immediateFuture;
 import static java.util.Objects.requireNonNull;
 
 /**
- * Simple state machine which holds a single state. Callers can register for state change events.
+ * This class is copied from <a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-main/src/main/java/io/trino/execution/StateMachine.java">Trino</a>
+ *
+ * <p>Simple state machine which holds a single state. Callers can register for state change events.
  */
 @ThreadSafe
 public class StateMachine<T> {
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/Driver.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/Driver.java
index 086234fa12..53555e11f8 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/Driver.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/driver/Driver.java
@@ -46,6 +46,12 @@ import static com.google.common.util.concurrent.MoreExecutors.directExecutor;
 import static java.lang.Boolean.TRUE;
 import static org.apache.iotdb.db.mpp.execution.operator.Operator.NOT_BLOCKED;
 
+/**
+ * This class is inspired by <a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-main/src/main/java/io/trino/operator/Driver.java">Trino</a>
+ *
+ * <p>The difference is that Trino is push-based, we're pull-based
+ */
 public abstract class Driver implements IDriver {
 
   protected static final Logger LOGGER = LoggerFactory.getLogger(Driver.class);
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceState.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceState.java
index c8f94f143a..55521d1c25 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceState.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceState.java
@@ -23,6 +23,12 @@ import java.util.stream.Stream;
 
 import static com.google.common.collect.ImmutableSet.toImmutableSet;
 
+/**
+ * This class is copied from
+ *
+ * <p><a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-main/src/main/java/io/trino/execution/TaskState.java">Trino</a>
+ */
 public enum FragmentInstanceState {
   /**
    * Instance is planned but has not been scheduled yet. An instance will be in the planned state
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceStateMachine.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceStateMachine.java
index 2071fcc8b2..63dfcd22e1 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceStateMachine.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceStateMachine.java
@@ -51,6 +51,12 @@ import static org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceState.F
 import static org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceState.RUNNING;
 import static org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceState.TERMINAL_INSTANCE_STATES;
 
+/**
+ * This class is copied from
+ *
+ * <p><a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-main/src/main/java/io/trino/execution/TaskStateMachine.java">Trino</a>
+ */
 @ThreadSafe
 public class FragmentInstanceStateMachine {
   private static final Logger LOGGER = LoggerFactory.getLogger(FragmentInstanceStateMachine.class);
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
index f292777567..546c39e205 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
@@ -40,7 +40,12 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Used to plan a fragment instance. Currently, we simply change it from PlanNode to executable
+ * This class is inspired by
+ *
+ * <p><a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-main/src/main/java/io/trino/sql/planner/LocalExecutionPlanner.java">Trino</a>
+ *
+ * <p>Used to plan a fragment instance. Currently, we simply change it from PlanNode to executable
  * Operator tree, but in the future, we may split one fragment instance into multiple pipeline to
  * run a fragment instance parallel and take full advantage of multi-cores
  */
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlock.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlock.java
index 20d408abc6..f39d280dd7 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlock.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlock.java
@@ -35,10 +35,16 @@ import static java.lang.String.format;
 import static java.util.Objects.requireNonNull;
 
 /**
- * Intermediate result for most of ExecOperators. The Tablet contains data from one or more columns
- * and constructs them as a row based view The columns can be series, aggregation result for one
- * series or scalar value (such as deviceName). The Tablet also contains the metadata to describe
- * the columns.
+ * This class is inspired by
+ *
+ * <p><a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-spi/src/main/java/io/trino/spi/Page.java">Trino</a>
+ *
+ * <p>We customize it for IIoT case where TimeColumn always exists.
+ *
+ * <p>Intermediate result for most of ExecOperators. The TsBlock contains data from one or more
+ * columns and constructs them as a row based view The columns can be series, aggregation result for
+ * one series or scalar value (such as deviceName).
  */
 public class TsBlock {
 
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java
index d4152d4ddb..d09c550ca1 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java
@@ -38,6 +38,14 @@ import static java.lang.String.format;
 import static java.util.Objects.requireNonNull;
 import static org.apache.iotdb.tsfile.read.common.block.TsBlockBuilderStatus.DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES;
 
+/**
+ * This class is inspired by
+ *
+ * <p><a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-spi/src/main/java/io/trino/spi/PageBuilder.java">Trino</a>
+ *
+ * <p>We customize it for IIoT case where TimeColumn always exists.
+ */
 public class TsBlockBuilder {
 
   // We choose default initial size to be 8 for TsBlockBuilder and ColumnBuilder
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilderStatus.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilderStatus.java
index 15d585800c..9472208006 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilderStatus.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilderStatus.java
@@ -21,6 +21,12 @@ package org.apache.iotdb.tsfile.read.common.block;
 import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
 import org.apache.iotdb.tsfile.read.common.block.column.ColumnBuilderStatus;
 
+/**
+ * This class is copied from
+ *
+ * <p><a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-spi/src/main/java/io/trino/spi/block/PageBuilderStatus.java">Trino</a>
+ */
 public class TsBlockBuilderStatus {
 
   public static final int DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES =
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/Column.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/Column.java
index fe2af36fca..37eb26973d 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/Column.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/Column.java
@@ -22,6 +22,12 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 import org.apache.iotdb.tsfile.utils.TsPrimitiveType;
 
+/**
+ * This class is inspired by
+ *
+ * <p><a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-spi/src/main/java/io/trino/spi/block/Block.java">Trino</a>
+ */
 public interface Column {
 
   /** Get the data type. */
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/ColumnBuilder.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/ColumnBuilder.java
index 6bc1f727f1..4558245942 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/ColumnBuilder.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/ColumnBuilder.java
@@ -22,6 +22,12 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 import org.apache.iotdb.tsfile.utils.TsPrimitiveType;
 
+/**
+ * This class is inspired by
+ *
+ * <p><a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-spi/src/main/java/io/trino/spi/block/BlockBuilder.java">Trino</a>
+ */
 public interface ColumnBuilder {
 
   /** Write a boolean to the current entry; */
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/ColumnBuilderStatus.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/ColumnBuilderStatus.java
index 86dca2ee50..894b663968 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/ColumnBuilderStatus.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/ColumnBuilderStatus.java
@@ -28,6 +28,12 @@ import java.lang.reflect.Modifier;
 import static java.lang.String.format;
 import static java.util.Objects.requireNonNull;
 
+/**
+ * This class is copied from
+ *
+ * <p><a
+ * href="https://github.com/trinodb/trino/blob/master/core/trino-spi/src/main/java/io/trino/spi/block/BlockBuilderStatus.java">Trino</a>
+ */
 public class ColumnBuilderStatus {
 
   public static final int INSTANCE_SIZE = deepInstanceSize(ColumnBuilderStatus.class);