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 <[email protected]> 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);
