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 2023/05/16 13:09:24 UTC
[iotdb] branch caLastOpt updated: fix bug
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch caLastOpt
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/caLastOpt by this push:
new 8964aacdbc fix bug
8964aacdbc is described below
commit 8964aacdbc487e78e135794fc9a9adf0a7352950
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Tue May 16 21:09:13 2023 +0800
fix bug
---
.../java/org/apache/iotdb/SessionPoolExample.java | 54 ++++++++++++++++++----
.../service/thrift/impl/ClientRPCServiceImpl.java | 15 ++++--
.../datanode1conf/iotdb-datanode.properties | 2 +-
.../datanode2conf/iotdb-datanode.properties | 2 +-
.../datanode3conf/iotdb-datanode.properties | 2 +-
5 files changed, 59 insertions(+), 16 deletions(-)
diff --git a/example/session/src/main/java/org/apache/iotdb/SessionPoolExample.java b/example/session/src/main/java/org/apache/iotdb/SessionPoolExample.java
index f3c70178ef..f1348edac5 100644
--- a/example/session/src/main/java/org/apache/iotdb/SessionPoolExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/SessionPoolExample.java
@@ -26,9 +26,9 @@ import org.apache.iotdb.session.pool.SessionPool;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
public class SessionPoolExample {
@@ -50,7 +50,6 @@ public class SessionPoolExample {
/** Build a redirect-able SessionPool for this example */
private static void constructRedirectSessionPool() {
List<String> nodeUrls = new ArrayList<>();
- nodeUrls.add("127.0.0.1:6667");
nodeUrls.add("127.0.0.1:6668");
sessionPool =
new SessionPool.Builder()
@@ -62,17 +61,54 @@ public class SessionPoolExample {
}
public static void main(String[] args)
- throws StatementExecutionException, IoTDBConnectionException, InterruptedException {
+ throws StatementExecutionException, IoTDBConnectionException {
// Choose the SessionPool you going to use
constructRedirectSessionPool();
- service = Executors.newFixedThreadPool(10);
- insertRecord();
- queryByRowRecord();
- Thread.sleep(1000);
- queryByIterator();
+ // service = Executors.newFixedThreadPool(10);
+ // insertRecord();
+ // queryByRowRecord();
+ // Thread.sleep(1000);
+ // queryByIterator();
+
+ SessionDataSetWrapper sessionDataSetWrapper =
+ sessionPool.executeLastDataQueryForOneDevice(
+ "root.ca.condition",
+ "root.ca.condition.`123456789`",
+ Arrays.asList("Pa", "Pb", "Pc", "status", "Pd"));
+
+ while (sessionDataSetWrapper.hasNext()) {
+ System.out.println(sessionDataSetWrapper.next());
+ }
+
+ sessionDataSetWrapper.close();
+
+ sessionDataSetWrapper =
+ sessionPool.executeLastDataQueryForOneDevice(
+ "root.ca.condition",
+ "root.ca.condition.`123456789`",
+ Arrays.asList("Pa", "Pb", "Pc", "status", "Pd"));
+
+ while (sessionDataSetWrapper.hasNext()) {
+ System.out.println(sessionDataSetWrapper.next());
+ }
+
+ sessionDataSetWrapper.close();
+
+ sessionDataSetWrapper =
+ sessionPool.executeLastDataQueryForOneDevice(
+ "root.ca.condition",
+ "root.ca.condition.`123456789`",
+ Arrays.asList("Pa", "Pb", "Pc", "status", "Pd"));
+
+ while (sessionDataSetWrapper.hasNext()) {
+ System.out.println(sessionDataSetWrapper.next());
+ }
+
+ sessionDataSetWrapper.close();
+
sessionPool.close();
- service.shutdown();
+ // service.shutdown();
}
// more insert example, see SessionExample.java
diff --git a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java
index 434acf1192..c6cb35d374 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java
@@ -689,7 +689,15 @@ public class ClientRPCServiceImpl implements IClientRPCServiceWithHandler {
TSExecuteStatementResp resp;
if (queryExecution.isQuery()) {
resp = createResponse(queryExecution.getDatasetHeader(), queryId);
- resp.setStatus(result.status);
+ TSStatus tsstatus = new TSStatus();
+ tsstatus.setCode(TSStatusCode.REDIRECTION_RECOMMEND.getStatusCode());
+ tsstatus.setRedirectNode(
+ regionReplicaSets
+ .get(regionReplicaSets.size() - 1)
+ .dataNodeLocations
+ .get(0)
+ .clientRpcEndPoint);
+ resp.setStatus(tsstatus);
finished = SELECT_RESULT.apply(resp, queryExecution, req.fetchSize);
resp.setMoreData(!finished);
quota.addReadResult(resp.getQueryResult());
@@ -725,8 +733,7 @@ public class ClientRPCServiceImpl implements IClientRPCServiceWithHandler {
}
private TSLastDataQueryReq convert(TSFastLastDataQueryForOneDeviceReq req) {
- TSLastDataQueryReq res = new TSLastDataQueryReq();
- List<String> paths = new ArrayList<>(req.sensors);
+ List<String> paths = new ArrayList<>(req.sensors.size());
for (String sensor : req.sensors) {
paths.add(req.deviceId + "." + sensor);
}
@@ -736,7 +743,7 @@ public class ClientRPCServiceImpl implements IClientRPCServiceWithHandler {
tsLastDataQueryReq.setEnableRedirectQuery(req.enableRedirectQuery);
tsLastDataQueryReq.setLegalPathNodes(req.legalPathNodes);
tsLastDataQueryReq.setTimeout(req.timeout);
- return res;
+ return tsLastDataQueryReq;
}
@Override
diff --git a/server/src/test/resources/datanode1conf/iotdb-datanode.properties b/server/src/test/resources/datanode1conf/iotdb-datanode.properties
index 60aac5c54f..498dd5ea58 100644
--- a/server/src/test/resources/datanode1conf/iotdb-datanode.properties
+++ b/server/src/test/resources/datanode1conf/iotdb-datanode.properties
@@ -17,7 +17,7 @@
# under the License.
#
-dn_rpc_address=0.0.0.0
+dn_rpc_address=127.0.0.1
dn_internal_address=127.0.0.1
dn_rpc_port=6667
diff --git a/server/src/test/resources/datanode2conf/iotdb-datanode.properties b/server/src/test/resources/datanode2conf/iotdb-datanode.properties
index decb6a4a38..56c5fd4845 100644
--- a/server/src/test/resources/datanode2conf/iotdb-datanode.properties
+++ b/server/src/test/resources/datanode2conf/iotdb-datanode.properties
@@ -17,7 +17,7 @@
# under the License.
#
-dn_rpc_address=0.0.0.0
+dn_rpc_address=127.0.0.1
dn_internal_address=127.0.0.1
dn_rpc_port=6668
diff --git a/server/src/test/resources/datanode3conf/iotdb-datanode.properties b/server/src/test/resources/datanode3conf/iotdb-datanode.properties
index b087567713..54f5f057c9 100644
--- a/server/src/test/resources/datanode3conf/iotdb-datanode.properties
+++ b/server/src/test/resources/datanode3conf/iotdb-datanode.properties
@@ -17,7 +17,7 @@
# under the License.
#
-dn_rpc_address=0.0.0.0
+dn_rpc_address=127.0.0.1
dn_internal_address=127.0.0.1
dn_rpc_port=6669