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:32 UTC
[iotdb] 01/01: Add java doc for some class which are inspired or copied from Trino
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);