This is an automated email from the ASF dual-hosted git repository.
xingtanzjr pushed a commit to branch xingtanzjr/mpp-query-basis
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/xingtanzjr/mpp-query-basis by
this push:
new 74517ca Milestone: complete the basic frame of query executing state
in MPP
74517ca is described below
commit 74517ca4c2f0d0110e6bde5a944a0e90cc4e089b
Author: Jinrui.Zhang <[email protected]>
AuthorDate: Mon Mar 14 18:37:51 2022 +0800
Milestone: complete the basic frame of query executing state in MPP
---
.../iotdb/db/query/mpp/exec/Coordinator.java | 23 ++++++++++++++++++++++
.../iotdb/db/query/mpp/exec/QueryExecution.java | 15 ++++++++++++++
.../db/query/mpp/plan/FragmentInstanceId.java | 2 ++
.../iotdb/db/query/mpp/plan/LogicalPlanner.java | 2 +-
4 files changed, 41 insertions(+), 1 deletion(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/query/mpp/exec/Coordinator.java
b/server/src/main/java/org/apache/iotdb/db/query/mpp/exec/Coordinator.java
index 90eec35..3c8c2b9 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/mpp/exec/Coordinator.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/mpp/exec/Coordinator.java
@@ -1,5 +1,28 @@
package org.apache.iotdb.db.query.mpp.exec;
+import org.apache.iotdb.db.query.mpp.common.QueryId;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * The coordinator for MPP.
+ * It manages all the queries which are executed in current Node. And it will
be responsible for the lifecycle of a query.
+ * A query request will be represented as a QueryExecution.
+ */
public class Coordinator {
+ private ConcurrentHashMap<QueryId, QueryExecution> queryExecutionMap;
+
+ private QueryExecution createQueryExecution() {
+ return null;
+ }
+
+ private QueryExecution getQueryExecutionById() {
+ return null;
+ }
+
+// private TQueryResponse executeQuery(TQueryRequest request) {
+//
+// }
}
+
diff --git
a/server/src/main/java/org/apache/iotdb/db/query/mpp/exec/QueryExecution.java
b/server/src/main/java/org/apache/iotdb/db/query/mpp/exec/QueryExecution.java
index c1aab14..708e186 100644
---
a/server/src/main/java/org/apache/iotdb/db/query/mpp/exec/QueryExecution.java
+++
b/server/src/main/java/org/apache/iotdb/db/query/mpp/exec/QueryExecution.java
@@ -6,6 +6,7 @@ import org.apache.iotdb.db.query.mpp.common.QueryId;
import org.apache.iotdb.db.query.mpp.plan.*;
import org.apache.iotdb.db.query.mpp.plan.optimzation.PlanOptimizer;
+import java.nio.ByteBuffer;
import java.util.List;
/**
@@ -68,4 +69,18 @@ public class QueryExecution {
public void planFragmentInstances() {
}
+
+ /**
+ * This method will be called by the request thread from client connection.
+ * This method will block until one of these conditions occurs:
+ * 1. There is a batch of result
+ * 2. There is no more result
+ * 3. The query has been cancelled
+ * 4. The query is timeout
+ * This method will fetch the result from DataStreamManager use the
virtual ResultOperator's ID
+ * (This part will be designed and implemented with DataStreamManager)
+ */
+ public ByteBuffer getBatchResult() {
+ return null;
+ }
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/query/mpp/plan/FragmentInstanceId.java
b/server/src/main/java/org/apache/iotdb/db/query/mpp/plan/FragmentInstanceId.java
index 090eb1a..ee6b0b2 100644
---
a/server/src/main/java/org/apache/iotdb/db/query/mpp/plan/FragmentInstanceId.java
+++
b/server/src/main/java/org/apache/iotdb/db/query/mpp/plan/FragmentInstanceId.java
@@ -5,4 +5,6 @@ public class FragmentInstanceId {
public FragmentInstanceId(String id) {
this.id = id;
}
+
+ //A SinkOperator is needed here. So that we can know where the result of
this instance can be sent
}
diff --git
a/server/src/main/java/org/apache/iotdb/db/query/mpp/plan/LogicalPlanner.java
b/server/src/main/java/org/apache/iotdb/db/query/mpp/plan/LogicalPlanner.java
index 8d17ca2..a400979 100644
---
a/server/src/main/java/org/apache/iotdb/db/query/mpp/plan/LogicalPlanner.java
+++
b/server/src/main/java/org/apache/iotdb/db/query/mpp/plan/LogicalPlanner.java
@@ -16,7 +16,7 @@ public class LogicalPlanner {
this.context = context;
this.optimizers = optimizers;
}
-
+
public LogicalQueryPlan plan() {
return null;
}