You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/12/20 01:30:20 UTC
[iotdb] branch rel/1.0 updated: [To rel/1.0] Add getBackupConfiguration() to 1.0 (#8518)
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch rel/1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.0 by this push:
new 00a40800c9 [To rel/1.0] Add getBackupConfiguration() to 1.0 (#8518)
00a40800c9 is described below
commit 00a40800c959a18f1518b8e3a1b0ebef5921be35
Author: 马子坤 <55...@users.noreply.github.com>
AuthorDate: Tue Dec 20 09:30:04 2022 +0800
[To rel/1.0] Add getBackupConfiguration() to 1.0 (#8518)
---
.../service/thrift/impl/ClientRPCServiceImpl.java | 6 ++++++
.../db/service/thrift/impl/TSServiceImpl.java | 6 ++++++
.../java/org/apache/iotdb/session/ISession.java | 4 ++++
.../java/org/apache/iotdb/session/Session.java | 7 +++++++
.../apache/iotdb/session/SessionConnection.java | 22 ++++++++++++++++++++++
.../org/apache/iotdb/session/pool/SessionPool.java | 20 ++++++++++++++++++++
thrift/src/main/thrift/client.thrift | 9 +++++++++
7 files changed, 74 insertions(+)
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 c16745624a..132b9e1719 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
@@ -71,6 +71,7 @@ import org.apache.iotdb.rpc.RpcUtils;
import org.apache.iotdb.rpc.TSStatusCode;
import org.apache.iotdb.service.rpc.thrift.ServerProperties;
import org.apache.iotdb.service.rpc.thrift.TSAppendSchemaTemplateReq;
+import org.apache.iotdb.service.rpc.thrift.TSBackupConfigurationResp;
import org.apache.iotdb.service.rpc.thrift.TSCancelOperationReq;
import org.apache.iotdb.service.rpc.thrift.TSCloseOperationReq;
import org.apache.iotdb.service.rpc.thrift.TSCloseSessionReq;
@@ -1719,6 +1720,11 @@ public class ClientRPCServiceImpl implements IClientRPCServiceWithHandler {
return SyncService.getInstance().transportFile(metaInfo, buff);
}
+ @Override
+ public TSBackupConfigurationResp getBackupConfiguration() {
+ return new TSBackupConfigurationResp(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
+ }
+
@Override
public TSConnectionInfoResp fetchAllConnectionsInfo() throws TException {
return SESSION_MANAGER.getAllConnectionInfo();
diff --git a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
index 2a48fb5437..54248476aa 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
@@ -78,6 +78,7 @@ import org.apache.iotdb.rpc.RpcUtils;
import org.apache.iotdb.rpc.TSStatusCode;
import org.apache.iotdb.service.rpc.thrift.ServerProperties;
import org.apache.iotdb.service.rpc.thrift.TSAppendSchemaTemplateReq;
+import org.apache.iotdb.service.rpc.thrift.TSBackupConfigurationResp;
import org.apache.iotdb.service.rpc.thrift.TSCancelOperationReq;
import org.apache.iotdb.service.rpc.thrift.TSCloseOperationReq;
import org.apache.iotdb.service.rpc.thrift.TSCloseSessionReq;
@@ -1390,6 +1391,11 @@ public class TSServiceImpl implements IClientRPCServiceWithHandler {
return SyncService.getInstance().transportFile(metaInfo, buff);
}
+ @Override
+ public TSBackupConfigurationResp getBackupConfiguration() {
+ return new TSBackupConfigurationResp(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
+ }
+
@Override
public TSConnectionInfoResp fetchAllConnectionsInfo() {
throw new UnsupportedOperationException();
diff --git a/session/src/main/java/org/apache/iotdb/session/ISession.java b/session/src/main/java/org/apache/iotdb/session/ISession.java
index 015b7199ec..dc9ba47934 100644
--- a/session/src/main/java/org/apache/iotdb/session/ISession.java
+++ b/session/src/main/java/org/apache/iotdb/session/ISession.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.session;
import org.apache.iotdb.common.rpc.thrift.TEndPoint;
import org.apache.iotdb.rpc.IoTDBConnectionException;
import org.apache.iotdb.rpc.StatementExecutionException;
+import org.apache.iotdb.service.rpc.thrift.TSBackupConfigurationResp;
import org.apache.iotdb.service.rpc.thrift.TSConnectionInfoResp;
import org.apache.iotdb.session.template.Template;
import org.apache.iotdb.session.util.Version;
@@ -458,5 +459,8 @@ public interface ISession extends AutoCloseable {
void sortTablet(Tablet tablet);
+ TSBackupConfigurationResp getBackupConfiguration()
+ throws IoTDBConnectionException, StatementExecutionException;
+
TSConnectionInfoResp fetchAllConnections() throws IoTDBConnectionException;
}
diff --git a/session/src/main/java/org/apache/iotdb/session/Session.java b/session/src/main/java/org/apache/iotdb/session/Session.java
index 4acd3fbdbc..1403772098 100644
--- a/session/src/main/java/org/apache/iotdb/session/Session.java
+++ b/session/src/main/java/org/apache/iotdb/session/Session.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.rpc.NoValidValueException;
import org.apache.iotdb.rpc.RedirectException;
import org.apache.iotdb.rpc.StatementExecutionException;
import org.apache.iotdb.service.rpc.thrift.TSAppendSchemaTemplateReq;
+import org.apache.iotdb.service.rpc.thrift.TSBackupConfigurationResp;
import org.apache.iotdb.service.rpc.thrift.TSConnectionInfoResp;
import org.apache.iotdb.service.rpc.thrift.TSCreateAlignedTimeseriesReq;
import org.apache.iotdb.service.rpc.thrift.TSCreateMultiTimeseriesReq;
@@ -3287,6 +3288,12 @@ public class Session implements ISession {
this.enableRedirection = enableRedirection;
}
+ @Override
+ public TSBackupConfigurationResp getBackupConfiguration()
+ throws IoTDBConnectionException, StatementExecutionException {
+ return defaultSessionConnection.getBackupConfiguration();
+ }
+
@Override
public TSConnectionInfoResp fetchAllConnections() throws IoTDBConnectionException {
return defaultSessionConnection.fetchAllConnections();
diff --git a/session/src/main/java/org/apache/iotdb/session/SessionConnection.java b/session/src/main/java/org/apache/iotdb/session/SessionConnection.java
index bd2ca927bc..889257b615 100644
--- a/session/src/main/java/org/apache/iotdb/session/SessionConnection.java
+++ b/session/src/main/java/org/apache/iotdb/session/SessionConnection.java
@@ -28,6 +28,7 @@ import org.apache.iotdb.rpc.RpcUtils;
import org.apache.iotdb.rpc.StatementExecutionException;
import org.apache.iotdb.service.rpc.thrift.IClientRPCService;
import org.apache.iotdb.service.rpc.thrift.TSAppendSchemaTemplateReq;
+import org.apache.iotdb.service.rpc.thrift.TSBackupConfigurationResp;
import org.apache.iotdb.service.rpc.thrift.TSCloseSessionReq;
import org.apache.iotdb.service.rpc.thrift.TSConnectionInfoResp;
import org.apache.iotdb.service.rpc.thrift.TSCreateAlignedTimeseriesReq;
@@ -961,6 +962,27 @@ public class SessionConnection {
}
}
+ protected TSBackupConfigurationResp getBackupConfiguration()
+ throws IoTDBConnectionException, StatementExecutionException {
+ TSBackupConfigurationResp execResp;
+ try {
+ execResp = client.getBackupConfiguration();
+ RpcUtils.verifySuccess(execResp.getStatus());
+ } catch (TException e) {
+ if (reconnect()) {
+ try {
+ execResp = client.getBackupConfiguration();
+ RpcUtils.verifySuccess(execResp.getStatus());
+ } catch (TException tException) {
+ throw new IoTDBConnectionException(tException);
+ }
+ } else {
+ throw new IoTDBConnectionException(logForReconnectionFailure());
+ }
+ }
+ return execResp;
+ }
+
public TSConnectionInfoResp fetchAllConnections() throws IoTDBConnectionException {
try {
return client.fetchAllConnectionsInfo();
diff --git a/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java b/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java
index c4192b5b06..7331779791 100644
--- a/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java
+++ b/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.session.pool;
import org.apache.iotdb.rpc.IoTDBConnectionException;
import org.apache.iotdb.rpc.StatementExecutionException;
+import org.apache.iotdb.service.rpc.thrift.TSBackupConfigurationResp;
import org.apache.iotdb.service.rpc.thrift.TSConnectionInfoResp;
import org.apache.iotdb.session.Session;
import org.apache.iotdb.session.SessionConfig;
@@ -2575,6 +2576,25 @@ public class SessionPool {
return connectionTimeoutInMs;
}
+ public TSBackupConfigurationResp getBackupConfiguration()
+ throws IoTDBConnectionException, StatementExecutionException {
+ for (int i = 0; i < RETRY; i++) {
+ Session session = getSession();
+ try {
+ TSBackupConfigurationResp resp = session.getBackupConfiguration();
+ putBack(session);
+ return resp;
+ } catch (IoTDBConnectionException e) {
+ // TException means the connection is broken, remove it and get a new one.
+ cleanSessionAndMayThrowConnectionException(session, i, e);
+ } catch (RuntimeException e) {
+ putBack(session);
+ throw e;
+ }
+ }
+ return null;
+ }
+
public TSConnectionInfoResp fetchAllConnections() throws IoTDBConnectionException {
for (int i = 0; i < RETRY; i++) {
diff --git a/thrift/src/main/thrift/client.thrift b/thrift/src/main/thrift/client.thrift
index ce43ac8f50..ec216613ea 100644
--- a/thrift/src/main/thrift/client.thrift
+++ b/thrift/src/main/thrift/client.thrift
@@ -433,6 +433,13 @@ struct TSyncTransportMetaInfo{
2:required i64 startIndex
}
+struct TSBackupConfigurationResp {
+ 1: required common.TSStatus status
+ 2: optional bool enableOperationSync
+ 3: optional string secondaryAddress
+ 4: optional i32 secondaryPort
+}
+
enum TSConnectionType {
THRIFT_BASED
MQTT_BASED
@@ -560,5 +567,7 @@ service IClientRPCService {
common.TSStatus sendFile(1:TSyncTransportMetaInfo metaInfo, 2:binary buff);
+ TSBackupConfigurationResp getBackupConfiguration();
+
TSConnectionInfoResp fetchAllConnectionsInfo();
}
\ No newline at end of file