This is an automated email from the ASF dual-hosted git repository.
neuyilan pushed a commit to branch rel/0.12
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.12 by this push:
new 48bcd87 [To rel/0.12] Optimize sync leader for meta (#2987) (#2994)
48bcd87 is described below
commit 48bcd87b94e285a58982dd6cb44032a5ff632e5a
Author: chaow <[email protected]>
AuthorDate: Tue Apr 13 09:00:02 2021 +0800
[To rel/0.12] Optimize sync leader for meta (#2987) (#2994)
---
client-cpp/pom.xml | 4 +-
.../resources/conf/iotdb-cluster.properties | 4 +-
.../apache/iotdb/cluster/config/ClusterConfig.java | 10 ---
.../iotdb/cluster/config/ClusterDescriptor.java | 5 --
.../iotdb/cluster/server/DataClusterServer.java | 6 +-
.../iotdb/cluster/server/MetaClusterServer.java | 6 +-
.../iotdb/cluster/server/member/RaftMember.java | 77 +++++++++++++---------
.../cluster/server/service/BaseAsyncService.java | 19 +++++-
.../cluster/server/service/BaseSyncService.java | 23 +++++--
.../query/ClusterDataQueryExecutorTest.java | 3 -
.../cluster/server/member/DataGroupMemberTest.java | 5 +-
.../cluster/server/member/RaftMemberTest.java | 9 +--
code-coverage/pom.xml | 2 +-
compile-tools/pom.xml | 6 +-
distribution/pom.xml | 2 +-
example/client-cpp-example/pom.xml | 2 +-
example/udf/pom.xml | 2 +-
grafana/pom.xml | 2 +-
jdbc/pom.xml | 2 +-
pom.xml | 8 +--
thrift-cluster/src/main/thrift/cluster.thrift | 8 ++-
21 files changed, 118 insertions(+), 87 deletions(-)
diff --git a/client-cpp/pom.xml b/client-cpp/pom.xml
index 91a5c81..4d205f4 100644
--- a/client-cpp/pom.xml
+++ b/client-cpp/pom.xml
@@ -98,8 +98,8 @@
<cmake.root.dir>${project.parent.basedir}/compile-tools/thrift/target/cmake-${cmake-version}-win64-x64/</cmake.root.dir>
<thrift.exec.absolute.path>${project.parent.basedir}/compile-tools/thrift/target/build/compiler/cpp/bin/${cmake.build.type}/thrift.exe</thrift.exec.absolute.path>
<iotdb.server.script>start-server.bat</iotdb.server.script>
- <boost.include.dir />
- <boost.library.dir />
+ <boost.include.dir/>
+ <boost.library.dir/>
</properties>
</profile>
<profile>
diff --git a/cluster/src/assembly/resources/conf/iotdb-cluster.properties
b/cluster/src/assembly/resources/conf/iotdb-cluster.properties
index 4126539..73e7b42 100644
--- a/cluster/src/assembly/resources/conf/iotdb-cluster.properties
+++ b/cluster/src/assembly/resources/conf/iotdb-cluster.properties
@@ -170,6 +170,4 @@ max_client_pernode_permember_number=1000
# If the number of connections created for a node exceeds
`max_client_pernode_permember_number`,
# we need to wait so much time for other connections to be released until
timeout,
# or a new connection will be created.
-wait_client_timeout_ms=5000
-
-enable_query_redirect=false
\ No newline at end of file
+wait_client_timeout_ms=5000
\ No newline at end of file
diff --git
a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java
b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java
index 3d1cd32..11cedc8 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java
@@ -164,8 +164,6 @@ public class ClusterConfig {
private boolean openServerRpcPort = false;
- private boolean enableQueryRedirect = false;
-
public int getSelectorNumOfClientPool() {
return selectorNumOfClientPool;
}
@@ -469,12 +467,4 @@ public class ClusterConfig {
public void setWaitClientTimeoutMS(long waitClientTimeoutMS) {
this.waitClientTimeoutMS = waitClientTimeoutMS;
}
-
- public boolean isEnableQueryRedirect() {
- return enableQueryRedirect;
- }
-
- public void setEnableQueryRedirect(boolean enableQueryRedirect) {
- this.enableQueryRedirect = enableQueryRedirect;
- }
}
diff --git
a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
index a2488f7..25f85e0 100644
---
a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
+++
b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
@@ -299,11 +299,6 @@ public class ClusterDescriptor {
properties.getProperty(
"wait_client_timeout_ms",
String.valueOf(config.getWaitClientTimeoutMS()))));
- config.setEnableQueryRedirect(
- Boolean.parseBoolean(
- properties.getProperty(
- "enable_query_redirect",
String.valueOf(config.isEnableQueryRedirect()))));
-
String consistencyLevel = properties.getProperty("consistency_level");
if (consistencyLevel != null) {
config.setConsistencyLevel(ConsistencyLevel.getConsistencyLevel(consistencyLevel));
diff --git
a/cluster/src/main/java/org/apache/iotdb/cluster/server/DataClusterServer.java
b/cluster/src/main/java/org/apache/iotdb/cluster/server/DataClusterServer.java
index a54de23..e4c81f8 100644
---
a/cluster/src/main/java/org/apache/iotdb/cluster/server/DataClusterServer.java
+++
b/cluster/src/main/java/org/apache/iotdb/cluster/server/DataClusterServer.java
@@ -46,6 +46,7 @@ import org.apache.iotdb.cluster.rpc.thrift.PullSchemaRequest;
import org.apache.iotdb.cluster.rpc.thrift.PullSchemaResp;
import org.apache.iotdb.cluster.rpc.thrift.PullSnapshotRequest;
import org.apache.iotdb.cluster.rpc.thrift.PullSnapshotResp;
+import org.apache.iotdb.cluster.rpc.thrift.RequestCommitIndexResponse;
import org.apache.iotdb.cluster.rpc.thrift.SendSnapshotRequest;
import org.apache.iotdb.cluster.rpc.thrift.SingleSeriesQueryRequest;
import org.apache.iotdb.cluster.rpc.thrift.TSDataService;
@@ -307,7 +308,8 @@ public class DataClusterServer extends RaftServer
}
@Override
- public void requestCommitIndex(Node header, AsyncMethodCallback<Long>
resultHandler) {
+ public void requestCommitIndex(
+ Node header, AsyncMethodCallback<RequestCommitIndexResponse>
resultHandler) {
DataAsyncService service = getDataAsyncService(header, resultHandler,
"Request commit index");
if (service != null) {
service.requestCommitIndex(header, resultHandler);
@@ -919,7 +921,7 @@ public class DataClusterServer extends RaftServer
}
@Override
- public long requestCommitIndex(Node header) throws TException {
+ public RequestCommitIndexResponse requestCommitIndex(Node header) throws
TException {
return getDataSyncService(header).requestCommitIndex(header);
}
diff --git
a/cluster/src/main/java/org/apache/iotdb/cluster/server/MetaClusterServer.java
b/cluster/src/main/java/org/apache/iotdb/cluster/server/MetaClusterServer.java
index 02d53b3..12e286f 100644
---
a/cluster/src/main/java/org/apache/iotdb/cluster/server/MetaClusterServer.java
+++
b/cluster/src/main/java/org/apache/iotdb/cluster/server/MetaClusterServer.java
@@ -33,6 +33,7 @@ import org.apache.iotdb.cluster.rpc.thrift.ExecutNonQueryReq;
import org.apache.iotdb.cluster.rpc.thrift.HeartBeatRequest;
import org.apache.iotdb.cluster.rpc.thrift.HeartBeatResponse;
import org.apache.iotdb.cluster.rpc.thrift.Node;
+import org.apache.iotdb.cluster.rpc.thrift.RequestCommitIndexResponse;
import org.apache.iotdb.cluster.rpc.thrift.SendSnapshotRequest;
import org.apache.iotdb.cluster.rpc.thrift.StartUpStatus;
import org.apache.iotdb.cluster.rpc.thrift.TNodeStatus;
@@ -224,7 +225,8 @@ public class MetaClusterServer extends RaftServer
}
@Override
- public void requestCommitIndex(Node header, AsyncMethodCallback<Long>
resultHandler) {
+ public void requestCommitIndex(
+ Node header, AsyncMethodCallback<RequestCommitIndexResponse>
resultHandler) {
asyncService.requestCommitIndex(header, resultHandler);
}
@@ -331,7 +333,7 @@ public class MetaClusterServer extends RaftServer
}
@Override
- public long requestCommitIndex(Node header) throws TException {
+ public RequestCommitIndexResponse requestCommitIndex(Node header) throws
TException {
return syncService.requestCommitIndex(header);
}
diff --git
a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
index 571424a..426c370 100644
---
a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
+++
b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
@@ -47,6 +47,7 @@ import org.apache.iotdb.cluster.rpc.thrift.HeartBeatResponse;
import org.apache.iotdb.cluster.rpc.thrift.Node;
import org.apache.iotdb.cluster.rpc.thrift.RaftService.AsyncClient;
import org.apache.iotdb.cluster.rpc.thrift.RaftService.Client;
+import org.apache.iotdb.cluster.rpc.thrift.RequestCommitIndexResponse;
import org.apache.iotdb.cluster.server.NodeCharacter;
import org.apache.iotdb.cluster.server.RaftServer;
import org.apache.iotdb.cluster.server.Response;
@@ -406,30 +407,7 @@ public abstract class RaftMember {
response.setLastLogTerm(logManager.getLastLogTerm());
}
- if (logManager.getCommitLogIndex() < request.getCommitLogIndex()) {
- // there are more local logs that can be committed, commit them in a
ThreadPool so the
- // heartbeat response will not be blocked
- CommitLogTask commitLogTask =
- new CommitLogTask(
- logManager, request.getCommitLogIndex(),
request.getCommitLogTerm());
- commitLogTask.registerCallback(new CommitLogCallback(this));
- // if the log is not consistent, the commitment will be blocked
until the leader makes the
- // node catch up
- if (commitLogPool != null && !commitLogPool.isShutdown()) {
- commitLogPool.submit(commitLogTask);
- }
-
- logger.debug(
- "{}: Inconsistent log found, leaderCommit: {}-{}, localCommit:
{}-{}, "
- + "localLast: {}-{}",
- name,
- request.getCommitLogIndex(),
- request.getCommitLogTerm(),
- logManager.getCommitLogIndex(),
- logManager.getCommitLogTerm(),
- logManager.getLastLogIndex(),
- logManager.getLastLogTerm());
- }
+ tryUpdateCommitIndex(leaderTerm, request.getCommitLogIndex(),
request.getCommitLogTerm());
if (logger.isTraceEnabled()) {
logger.trace("{} received heartbeat from a valid leader {}", name,
request.getLeader());
@@ -439,6 +417,31 @@ public abstract class RaftMember {
}
}
+ private void tryUpdateCommitIndex(long leaderTerm, long commitIndex, long
commitTerm) {
+ if (leaderTerm >= term.get() && logManager.getCommitLogIndex() <
commitIndex) {
+ // there are more local logs that can be committed, commit them in a
ThreadPool so the
+ // heartbeat response will not be blocked
+ CommitLogTask commitLogTask = new CommitLogTask(logManager, commitIndex,
commitTerm);
+ commitLogTask.registerCallback(new CommitLogCallback(this));
+ // if the log is not consistent, the commitment will be blocked until
the leader makes the
+ // node catch up
+ if (commitLogPool != null && !commitLogPool.isShutdown()) {
+ commitLogPool.submit(commitLogTask);
+ }
+
+ logger.debug(
+ "{}: Inconsistent log found, leaderCommit: {}-{}, localCommit:
{}-{}, "
+ + "localLast: {}-{}",
+ name,
+ commitIndex,
+ commitTerm,
+ logManager.getCommitLogIndex(),
+ logManager.getCommitLogTerm(),
+ logManager.getLastLogIndex(),
+ logManager.getLastLogTerm());
+ }
+ }
+
/**
* Process an ElectionRequest. If the request comes from the last leader,
accept it. Else decide
* whether to accept by examining the log status of the elector.
@@ -872,8 +875,14 @@ public abstract class RaftMember {
protected boolean waitUntilCatchUp(CheckConsistency checkConsistency)
throws CheckConsistencyException {
long leaderCommitId = Long.MIN_VALUE;
+ RequestCommitIndexResponse response;
try {
- leaderCommitId = config.isUseAsyncServer() ? requestCommitIdAsync() :
requestCommitIdSync();
+ response = config.isUseAsyncServer() ? requestCommitIdAsync() :
requestCommitIdSync();
+ leaderCommitId = response.getCommitLogIndex();
+
+ tryUpdateCommitIndex(
+ response.getTerm(), response.getCommitLogIndex(),
response.getCommitLogTerm());
+
return syncLocalApply(leaderCommitId);
} catch (TException e) {
logger.error(MSG_NO_LEADER_COMMIT_INDEX, name, leader.get(), e);
@@ -1057,9 +1066,12 @@ public abstract class RaftMember {
}
@SuppressWarnings("java:S2274") // enable timeout
- protected long requestCommitIdAsync() throws TException,
InterruptedException {
+ protected RequestCommitIndexResponse requestCommitIdAsync()
+ throws TException, InterruptedException {
// use Long.MAX_VALUE to indicate a timeout
- AtomicReference<Long> commitIdResult = new
AtomicReference<>(Long.MAX_VALUE);
+ RequestCommitIndexResponse response =
+ new RequestCommitIndexResponse(Long.MAX_VALUE, Long.MAX_VALUE,
Long.MAX_VALUE);
+ AtomicReference<RequestCommitIndexResponse> commitIdResult = new
AtomicReference<>(response);
AsyncClient client = getAsyncClient(leader.get());
if (client == null) {
// cannot connect to the leader
@@ -1073,24 +1085,25 @@ public abstract class RaftMember {
return commitIdResult.get();
}
- private long requestCommitIdSync() throws TException {
+ private RequestCommitIndexResponse requestCommitIdSync() throws TException {
Client client = getSyncClient(leader.get());
+ RequestCommitIndexResponse response;
if (client == null) {
// cannot connect to the leader
logger.warn(MSG_NO_LEADER_IN_SYNC, name);
// use Long.MAX_VALUE to indicate a timeouts
- return Long.MAX_VALUE;
+ response = new RequestCommitIndexResponse(Long.MAX_VALUE,
Long.MAX_VALUE, Long.MAX_VALUE);
+ return response;
}
- long commitIndex;
try {
- commitIndex = client.requestCommitIndex(getHeader());
+ response = client.requestCommitIndex(getHeader());
} catch (TException e) {
client.getInputProtocol().getTransport().close();
throw e;
} finally {
ClientUtils.putBackSyncClient(client);
}
- return commitIndex;
+ return response;
}
/**
diff --git
a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/BaseAsyncService.java
b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/BaseAsyncService.java
index 07dbdea..8673078 100644
---
a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/BaseAsyncService.java
+++
b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/BaseAsyncService.java
@@ -30,6 +30,7 @@ import org.apache.iotdb.cluster.rpc.thrift.HeartBeatResponse;
import org.apache.iotdb.cluster.rpc.thrift.Node;
import org.apache.iotdb.cluster.rpc.thrift.RaftService;
import org.apache.iotdb.cluster.rpc.thrift.RaftService.AsyncClient;
+import org.apache.iotdb.cluster.rpc.thrift.RequestCommitIndexResponse;
import org.apache.iotdb.cluster.server.NodeCharacter;
import org.apache.iotdb.cluster.server.member.RaftMember;
import org.apache.iotdb.cluster.utils.IOUtils;
@@ -85,10 +86,22 @@ public abstract class BaseAsyncService implements
RaftService.AsyncIface {
}
@Override
- public void requestCommitIndex(Node header, AsyncMethodCallback<Long>
resultHandler) {
- long commitIndex = member.getCommitIndex();
+ public void requestCommitIndex(
+ Node header, AsyncMethodCallback<RequestCommitIndexResponse>
resultHandler) {
+ long commitIndex;
+ long commitTerm;
+ long curTerm;
+ synchronized (member.getTerm()) {
+ commitIndex = member.getLogManager().getCommitLogIndex();
+ commitTerm = member.getLogManager().getCommitLogTerm();
+ curTerm = member.getTerm().get();
+ }
+
+ RequestCommitIndexResponse response =
+ new RequestCommitIndexResponse(curTerm, commitIndex, commitTerm);
+
if (commitIndex != Long.MIN_VALUE) {
- resultHandler.onComplete(commitIndex);
+ resultHandler.onComplete(response);
return;
}
diff --git
a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/BaseSyncService.java
b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/BaseSyncService.java
index 697f54e..ce200ab 100644
---
a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/BaseSyncService.java
+++
b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/BaseSyncService.java
@@ -30,6 +30,7 @@ import org.apache.iotdb.cluster.rpc.thrift.HeartBeatResponse;
import org.apache.iotdb.cluster.rpc.thrift.Node;
import org.apache.iotdb.cluster.rpc.thrift.RaftService;
import org.apache.iotdb.cluster.rpc.thrift.RaftService.Client;
+import org.apache.iotdb.cluster.rpc.thrift.RequestCommitIndexResponse;
import org.apache.iotdb.cluster.server.NodeCharacter;
import org.apache.iotdb.cluster.server.member.RaftMember;
import org.apache.iotdb.cluster.utils.ClientUtils;
@@ -93,10 +94,22 @@ public abstract class BaseSyncService implements
RaftService.Iface {
}
@Override
- public long requestCommitIndex(Node header) throws TException {
- long commitIndex = member.getCommitIndex();
+ public RequestCommitIndexResponse requestCommitIndex(Node header) throws
TException {
+
+ long commitIndex;
+ long commitTerm;
+ long curTerm;
+ synchronized (member.getTerm()) {
+ commitIndex = member.getLogManager().getCommitLogIndex();
+ commitTerm = member.getLogManager().getCommitLogTerm();
+ curTerm = member.getTerm().get();
+ }
+
+ RequestCommitIndexResponse response =
+ new RequestCommitIndexResponse(curTerm, commitIndex, commitTerm);
+
if (commitIndex != Long.MIN_VALUE) {
- return commitIndex;
+ return response;
}
member.waitLeader();
@@ -105,14 +118,14 @@ public abstract class BaseSyncService implements
RaftService.Iface {
throw new TException(new LeaderUnknownException(member.getAllNodes()));
}
try {
- commitIndex = client.requestCommitIndex(header);
+ response = client.requestCommitIndex(header);
} catch (TException e) {
client.getInputProtocol().getTransport().close();
throw e;
} finally {
ClientUtils.putBackSyncClient(client);
}
- return commitIndex;
+ return response;
}
@Override
diff --git
a/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterDataQueryExecutorTest.java
b/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterDataQueryExecutorTest.java
index bf88b89..8b7e98d 100644
---
a/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterDataQueryExecutorTest.java
+++
b/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterDataQueryExecutorTest.java
@@ -20,7 +20,6 @@
package org.apache.iotdb.cluster.query;
import org.apache.iotdb.cluster.common.TestUtils;
-import org.apache.iotdb.cluster.config.ClusterDescriptor;
import org.apache.iotdb.db.exception.StorageEngineException;
import org.apache.iotdb.db.exception.metadata.IllegalPathException;
import org.apache.iotdb.db.exception.query.QueryProcessException;
@@ -52,14 +51,12 @@ public class ClusterDataQueryExecutorTest extends
BaseQueryTest {
@Before
public void setUp() throws Exception {
super.setUp();
- ClusterDescriptor.getInstance().getConfig().setEnableQueryRedirect(true);
}
@Override
@After
public void tearDown() throws Exception {
super.tearDown();
- ClusterDescriptor.getInstance().getConfig().setEnableQueryRedirect(false);
}
@Test
diff --git
a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
index 77e72b2..f6d5e5d 100644
---
a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
+++
b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
@@ -48,6 +48,7 @@ import org.apache.iotdb.cluster.rpc.thrift.PullSchemaResp;
import org.apache.iotdb.cluster.rpc.thrift.PullSnapshotRequest;
import org.apache.iotdb.cluster.rpc.thrift.PullSnapshotResp;
import org.apache.iotdb.cluster.rpc.thrift.RaftService.AsyncClient;
+import org.apache.iotdb.cluster.rpc.thrift.RequestCommitIndexResponse;
import org.apache.iotdb.cluster.rpc.thrift.SendSnapshotRequest;
import org.apache.iotdb.cluster.rpc.thrift.SingleSeriesQueryRequest;
import org.apache.iotdb.cluster.server.NodeCharacter;
@@ -244,11 +245,11 @@ public class DataGroupMemberTest extends BaseMember {
@Override
public void requestCommitIndex(
- Node header, AsyncMethodCallback<Long> resultHandler) {
+ Node header,
AsyncMethodCallback<RequestCommitIndexResponse> resultHandler) {
new Thread(
() -> {
if (enableSyncLeader) {
- resultHandler.onComplete(-1L);
+ resultHandler.onComplete(new
RequestCommitIndexResponse());
} else {
resultHandler.onError(new TestException());
}
diff --git
a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/RaftMemberTest.java
b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/RaftMemberTest.java
index 494f845..694c4aa 100644
---
a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/RaftMemberTest.java
+++
b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/RaftMemberTest.java
@@ -29,6 +29,7 @@ import
org.apache.iotdb.cluster.log.manage.PartitionedSnapshotLogManager;
import org.apache.iotdb.cluster.rpc.thrift.AppendEntryRequest;
import org.apache.iotdb.cluster.rpc.thrift.Node;
import org.apache.iotdb.cluster.rpc.thrift.RaftService;
+import org.apache.iotdb.cluster.rpc.thrift.RequestCommitIndexResponse;
import org.apache.iotdb.cluster.server.NodeCharacter;
import org.apache.iotdb.cluster.server.Response;
@@ -178,8 +179,8 @@ public class RaftMemberTest extends BaseMember {
}
@Override
- protected long requestCommitIdAsync() {
- return 5;
+ protected RequestCommitIndexResponse requestCommitIdAsync() {
+ return new RequestCommitIndexResponse(5, 5, 5);
}
@Override
@@ -215,8 +216,8 @@ public class RaftMemberTest extends BaseMember {
}
@Override
- protected long requestCommitIdAsync() {
- return 1000L;
+ protected RequestCommitIndexResponse requestCommitIdAsync() {
+ return new RequestCommitIndexResponse(1000, 1000, 1000);
}
@Override
diff --git a/code-coverage/pom.xml b/code-coverage/pom.xml
index 13a3ffd..3f27bd9 100644
--- a/code-coverage/pom.xml
+++ b/code-coverage/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.iotdb</groupId>
<artifactId>iotdb-parent</artifactId>
- <version>0.12.0-SNAPSHOT</version>
+ <version>0.12.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>iotdb-code-coverage</artifactId>
diff --git a/compile-tools/pom.xml b/compile-tools/pom.xml
index 0621cc8..a4c0447 100644
--- a/compile-tools/pom.xml
+++ b/compile-tools/pom.xml
@@ -35,7 +35,7 @@
<cmake-version>3.17.3</cmake-version>
<openssl.include.dir>-Dtrue1=true1</openssl.include.dir>
<bison.executable.dir>-Dtrue1=true1</bison.executable.dir>
- <cmake.build.type />
+ <cmake.build.type/>
</properties>
<modules>
<module>thrift</module>
@@ -114,8 +114,8 @@
<thrift.make.executable>make</thrift.make.executable>
<thrift.compiler.executable>thrift.exe</thrift.compiler.executable>
<gradlew.executable>gradlew.bat</gradlew.executable>
- <boost.include.dir />
- <boost.library.dir />
+ <boost.include.dir/>
+ <boost.library.dir/>
</properties>
</profile>
</profiles>
diff --git a/distribution/pom.xml b/distribution/pom.xml
index 183ca0e..e4e72f9 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -29,7 +29,7 @@
</parent>
<artifactId>iotdb-distribution</artifactId>
<name>IoTDB Distribution</name>
- <modules />
+ <modules/>
<build>
<plugins>
<plugin>
diff --git a/example/client-cpp-example/pom.xml
b/example/client-cpp-example/pom.xml
index 0220fcc..451627e 100644
--- a/example/client-cpp-example/pom.xml
+++ b/example/client-cpp-example/pom.xml
@@ -69,7 +69,7 @@
<properties>
<cmake.generator>Visual Studio 16 2019</cmake.generator>
<cmake.root.dir>${project.parent.basedir}/../compile-tools/thrift/target/cmake-${cmake-version}-win64-x64/</cmake.root.dir>
- <boost.include.dir />
+ <boost.include.dir/>
</properties>
</profile>
<profile>
diff --git a/example/udf/pom.xml b/example/udf/pom.xml
index c213c14..8410382 100644
--- a/example/udf/pom.xml
+++ b/example/udf/pom.xml
@@ -77,7 +77,7 @@
<importOrder>
<order>org.apache.iotdb,,javax,java,\#</order>
</importOrder>
- <removeUnusedImports />
+ <removeUnusedImports/>
</java>
</configuration>
<executions>
diff --git a/grafana/pom.xml b/grafana/pom.xml
index 3893aec..02356c4 100644
--- a/grafana/pom.xml
+++ b/grafana/pom.xml
@@ -170,7 +170,7 @@
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
- <transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"
/>
+ <transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>${start-class}</mainClass>
</transformer>
diff --git a/jdbc/pom.xml b/jdbc/pom.xml
index 73d3d65..d341267 100644
--- a/jdbc/pom.xml
+++ b/jdbc/pom.xml
@@ -198,7 +198,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <ignore />
+ <ignore/>
</action>
</pluginExecution>
</pluginExecutions>
diff --git a/pom.xml b/pom.xml
index fff63f1..61711c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -149,7 +149,7 @@
<sonar.junit.reportPaths>target/surefire-reports,target/failsafe-reports</sonar.junit.reportPaths>
<!-- By default, the argLine is empty-->
<gson.version>2.8.6</gson.version>
- <argLine />
+ <argLine/>
<!-- whether enable compiling the cpp client-->
<client-cpp>false</client-cpp>
<!-- disable enforcer by default-->
@@ -627,7 +627,7 @@
<importOrder>
<order>org.apache.iotdb,,javax,java,\#</order>
</importOrder>
- <removeUnusedImports />
+ <removeUnusedImports/>
</java>
</configuration>
<executions>
@@ -697,7 +697,7 @@
<id>enforce-version-convergence</id>
<configuration>
<rules>
- <dependencyConvergence />
+ <dependencyConvergence/>
</rules>
</configuration>
<goals>
@@ -743,7 +743,7 @@
</requireJavaVersion>
<!-- Disabled for now as it breaks the ability
to build single modules -->
<!--reactorModuleConvergence/-->
- <banVulnerable
implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies"
/>
+ <banVulnerable
implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies"/>
</rules>
</configuration>
</execution>
diff --git a/thrift-cluster/src/main/thrift/cluster.thrift
b/thrift-cluster/src/main/thrift/cluster.thrift
index c8edbe3..f23130e 100644
--- a/thrift-cluster/src/main/thrift/cluster.thrift
+++ b/thrift-cluster/src/main/thrift/cluster.thrift
@@ -58,6 +58,12 @@ struct HeartBeatResponse {
7: optional Node header
}
+struct RequestCommitIndexResponse {
+ 1: required long term // leader's meta log
+ 2: required long commitLogIndex // leader's meta log
+ 3: required long commitLogTerm
+}
+
// node -> node
struct ElectionRequest {
1: required long term
@@ -311,7 +317,7 @@ service RaftService {
* Ask the leader for its commit index, used to check whether the node has
caught up with the
* leader.
**/
- long requestCommitIndex(1:Node header)
+ RequestCommitIndexResponse requestCommitIndex(1:Node header)
/**