You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hx...@apache.org on 2021/08/10 17:09:11 UTC

[iotdb] branch cluster- updated (0625334 -> 2fbbdc9)

This is an automated email from the ASF dual-hosted git repository.

hxd pushed a change to branch cluster-
in repository https://gitbox.apache.org/repos/asf/iotdb.git.


    from 0625334  pass manually test
     new 9790e83  add cluster/server/raft packet
     new 2fbbdc9  add lost codes..

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitignore                                         |  1 -
 .../org/apache/iotdb/cluster/ClusterIoTDB.java     |  1 +
 .../cluster/client/sync/SyncClientFactory.java     |  1 +
 .../iotdb/cluster/client/sync/SyncClientPool.java  |  1 +
 .../iotdb/cluster/client/sync/SyncDataClient.java  |  1 +
 .../client/sync/SyncDataHeartbeatClient.java       |  1 +
 .../iotdb/cluster/client/sync/SyncMetaClient.java  |  1 +
 .../client/sync/SyncMetaHeartbeatClient.java       |  1 +
 .../cluster/partition/slot/SlotPartitionTable.java |  1 +
 .../handlers/caller/AppendNodeEntryHandler.java    |  1 +
 .../server/handlers/caller/HeartbeatHandler.java   |  1 +
 .../cluster/server/heartbeat/HeartbeatThread.java  |  1 +
 .../server/heartbeat/MetaHeartbeatThread.java      |  1 +
 .../cluster/server/member/DataGroupMember.java     |  1 +
 .../cluster/server/member/MetaGroupMember.java     |  1 +
 .../iotdb/cluster/server/member/RaftMember.java    |  3 +-
 .../server/raft/AbstractDataRaftService.java       | 53 ++++++++++++++++
 .../server/raft/AbstractMetaRaftService.java       | 51 +++++++++++++++
 .../cluster/server/raft/AbstractRaftService.java   | 74 ++++++++++++++++++++++
 .../server/raft/DataRaftHeartBeatService.java      | 67 ++++++++++++++++++++
 .../server/raft/DataRaftHeartBeatServiceMBean.java |  4 +-
 .../iotdb/cluster/server/raft/DataRaftService.java | 64 +++++++++++++++++++
 .../cluster/server/raft/DataRaftServiceMBean.java  |  4 +-
 .../server/raft/MetaRaftHeartBeatService.java      | 67 ++++++++++++++++++++
 .../server/raft/MetaRaftHeartBeatServiceMBean.java |  4 +-
 .../iotdb/cluster/server/raft/MetaRaftService.java | 64 +++++++++++++++++++
 .../cluster/server/raft/MetaRaftServiceMBean.java  |  4 +-
 .../RaftServiceHandler.java}                       | 31 +++------
 .../server/service/DataGroupServiceImpls.java      |  1 +
 .../cluster/server/service/MetaSyncService.java    |  1 +
 30 files changed, 475 insertions(+), 32 deletions(-)
 create mode 100644 cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractDataRaftService.java
 create mode 100644 cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractMetaRaftService.java
 create mode 100644 cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractRaftService.java
 create mode 100644 cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatService.java
 copy tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/IDataWriter.java => cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatServiceMBean.java (89%)
 create mode 100644 cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftService.java
 copy tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/IDataWriter.java => cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftServiceMBean.java (90%)
 create mode 100644 cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatService.java
 copy tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/IDataWriter.java => cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatServiceMBean.java (89%)
 create mode 100644 cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftService.java
 copy tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/IDataWriter.java => cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftServiceMBean.java (90%)
 copy cluster/src/main/java/org/apache/iotdb/cluster/server/{clusterinfo/ClusterInfoServiceThriftHandler.java => raft/RaftServiceHandler.java} (61%)

[iotdb] 02/02: add lost codes..

Posted by hx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hxd pushed a commit to branch cluster-
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 2fbbdc9d8c5f8348de38316601d3ad3f14db8256
Author: xiangdong huang <sa...@gmail.com>
AuthorDate: Wed Aug 11 01:06:08 2021 +0800

    add lost codes..
---
 .../server/raft/AbstractDataRaftService.java       | 53 ++++++++++++++++
 .../server/raft/AbstractMetaRaftService.java       | 51 +++++++++++++++
 .../cluster/server/raft/AbstractRaftService.java   | 74 ++++++++++++++++++++++
 .../server/raft/DataRaftHeartBeatService.java      | 67 ++++++++++++++++++++
 .../iotdb/cluster/server/raft/DataRaftService.java | 64 +++++++++++++++++++
 .../server/raft/MetaRaftHeartBeatService.java      | 67 ++++++++++++++++++++
 .../iotdb/cluster/server/raft/MetaRaftService.java | 64 +++++++++++++++++++
 7 files changed, 440 insertions(+)

diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractDataRaftService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractDataRaftService.java
new file mode 100644
index 0000000..23fcc59
--- /dev/null
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractDataRaftService.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.cluster.server.raft;
+
+import org.apache.iotdb.cluster.config.ClusterDescriptor;
+import org.apache.iotdb.cluster.rpc.thrift.TSDataService;
+import org.apache.iotdb.cluster.server.service.DataGroupServiceImpls;
+
+public abstract class AbstractDataRaftService extends AbstractRaftService {
+
+  private DataGroupServiceImpls impl;
+
+  @Override
+  public void initSyncedServiceImpl(Object serviceImpl) {
+    if (impl != null) {
+      impl = (DataGroupServiceImpls) serviceImpl;
+    }
+    super.initSyncedServiceImpl(serviceImpl);
+  }
+
+  @Override
+  public void initAsyncedServiceImpl(Object serviceImpl) {
+    if (impl != null) {
+      impl = (DataGroupServiceImpls) serviceImpl;
+    }
+    super.initAsyncedServiceImpl(serviceImpl);
+  }
+
+  @Override
+  public void initTProcessor() {
+    if (ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()) {
+      processor = new TSDataService.AsyncProcessor<>(impl);
+    } else {
+      processor = new TSDataService.Processor<>(impl);
+    }
+  }
+}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractMetaRaftService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractMetaRaftService.java
new file mode 100644
index 0000000..905e0fa
--- /dev/null
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractMetaRaftService.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.cluster.server.raft;
+
+import org.apache.iotdb.cluster.config.ClusterDescriptor;
+import org.apache.iotdb.cluster.rpc.thrift.TSMetaService;
+import org.apache.iotdb.cluster.server.service.MetaAsyncService;
+import org.apache.iotdb.cluster.server.service.MetaSyncService;
+
+public abstract class AbstractMetaRaftService extends AbstractRaftService {
+
+  private MetaAsyncService asyncServiceImpl;
+  private MetaSyncService syncServiceImpl;
+
+  @Override
+  public void initSyncedServiceImpl(Object serviceImpl) {
+    syncServiceImpl = (MetaSyncService) serviceImpl;
+    super.initSyncedServiceImpl(serviceImpl);
+  }
+
+  @Override
+  public void initAsyncedServiceImpl(Object serviceImpl) {
+    asyncServiceImpl = (MetaAsyncService) serviceImpl;
+    super.initAsyncedServiceImpl(serviceImpl);
+  }
+
+  @Override
+  public void initTProcessor() {
+    if (ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()) {
+      processor = new TSMetaService.AsyncProcessor<>(asyncServiceImpl);
+    } else {
+      processor = new TSMetaService.Processor<>(syncServiceImpl);
+    }
+  }
+}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractRaftService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractRaftService.java
new file mode 100644
index 0000000..d62024b
--- /dev/null
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractRaftService.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.cluster.server.raft;
+
+import org.apache.iotdb.cluster.config.ClusterDescriptor;
+import org.apache.iotdb.cluster.rpc.thrift.TSMetaService;
+import org.apache.iotdb.db.conf.IoTDBConfig;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.exception.runtime.RPCServiceException;
+import org.apache.iotdb.db.service.thrift.ThriftService;
+import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
+
+public abstract class AbstractRaftService extends ThriftService {
+
+  public void initThriftServiceThread(
+      String daemonThreadName, String clientThreadName, ThriftServiceThread.ServerType serverType)
+      throws IllegalAccessException {
+    IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
+    try {
+      if (ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()) {
+        thriftServiceThread =
+            new ThriftServiceThread(
+                (TSMetaService.AsyncProcessor) processor,
+                getID().getName(),
+                clientThreadName,
+                getBindIP(),
+                getBindPort(),
+                config.getRpcMaxConcurrentClientNum(),
+                config.getThriftServerAwaitTimeForStopService(),
+                new RaftServiceHandler(),
+                false,
+                ClusterDescriptor.getInstance().getConfig().getConnectionTimeoutInMS(),
+                config.getThriftMaxFrameSize(),
+                serverType);
+      } else {
+        thriftServiceThread =
+            new ThriftServiceThread(
+                processor,
+                getID().getName(),
+                clientThreadName,
+                getBindIP(),
+                getBindPort(),
+                config.getRpcMaxConcurrentClientNum(),
+                config.getThriftServerAwaitTimeForStopService(),
+                new RaftServiceHandler(),
+                false);
+      }
+    } catch (RPCServiceException e) {
+      throw new IllegalAccessException(e.getMessage());
+    }
+    thriftServiceThread.setName(daemonThreadName);
+  }
+
+  @Override
+  public String getBindIP() {
+    return ClusterDescriptor.getInstance().getConfig().getInternalIp();
+  }
+}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatService.java
new file mode 100644
index 0000000..54a66b0
--- /dev/null
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatService.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.cluster.server.raft;
+
+import org.apache.iotdb.cluster.config.ClusterDescriptor;
+import org.apache.iotdb.cluster.utils.ClusterUtils;
+import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.db.service.ServiceType;
+import org.apache.iotdb.db.service.thrift.ThriftService;
+import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
+
+public class DataRaftHeartBeatService extends AbstractDataRaftService
+    implements DataRaftHeartBeatServiceMBean {
+
+  private DataRaftHeartBeatService() {}
+
+  @Override
+  public ThriftService getImplementation() {
+    return DataRaftHeartBeatServiceHolder.INSTANCE;
+  }
+
+  @Override
+  public ServiceType getID() {
+    return ServiceType.CLUSTER_DATA_HEART_BEAT_RPC_SERVICE;
+  }
+
+  @Override
+  public void initThriftServiceThread() throws IllegalAccessException {
+    initThriftServiceThread(
+        ThreadName.CLUSTER_DATA_HEARTBEAT_RPC_SERVICE.getName(),
+        ThreadName.CLUSTER_DATA_HEARTBEAT_RPC_CLIENT.getName(),
+        ThriftServiceThread.ServerType.HSHA);
+  }
+
+  @Override
+  public int getBindPort() {
+    return ClusterDescriptor.getInstance().getConfig().getInternalDataPort()
+        + ClusterUtils.DATA_HEARTBEAT_PORT_OFFSET;
+  }
+
+  public static DataRaftHeartBeatService getInstance() {
+    return DataRaftHeartBeatServiceHolder.INSTANCE;
+  }
+
+  private static class DataRaftHeartBeatServiceHolder {
+
+    private static final DataRaftHeartBeatService INSTANCE = new DataRaftHeartBeatService();
+
+    private DataRaftHeartBeatServiceHolder() {}
+  }
+}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftService.java
new file mode 100644
index 0000000..01cde6e
--- /dev/null
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftService.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.cluster.server.raft;
+
+import org.apache.iotdb.cluster.config.ClusterDescriptor;
+import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.db.service.ServiceType;
+import org.apache.iotdb.db.service.thrift.ThriftService;
+import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
+
+public class DataRaftService extends AbstractDataRaftService implements DataRaftServiceMBean {
+
+  private DataRaftService() {}
+
+  @Override
+  public ThriftService getImplementation() {
+    return DataRaftServiceHolder.INSTANCE;
+  }
+
+  @Override
+  public ServiceType getID() {
+    return ServiceType.CLUSTER_DATA_RPC_SERVICE;
+  }
+
+  @Override
+  public void initThriftServiceThread() throws IllegalAccessException {
+    initThriftServiceThread(
+        ThreadName.CLUSTER_DATA_RPC_SERVICE.getName(),
+        ThreadName.CLUSTER_DATA_RPC_CLIENT.getName(),
+        ThriftServiceThread.ServerType.SELECTOR);
+  }
+
+  @Override
+  public int getBindPort() {
+    return ClusterDescriptor.getInstance().getConfig().getInternalDataPort();
+  }
+
+  public static DataRaftService getInstance() {
+    return DataRaftServiceHolder.INSTANCE;
+  }
+
+  private static class DataRaftServiceHolder {
+
+    private static final DataRaftService INSTANCE = new DataRaftService();
+
+    private DataRaftServiceHolder() {}
+  }
+}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatService.java
new file mode 100644
index 0000000..fc463c4
--- /dev/null
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatService.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.cluster.server.raft;
+
+import org.apache.iotdb.cluster.config.ClusterDescriptor;
+import org.apache.iotdb.cluster.utils.ClusterUtils;
+import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.db.service.ServiceType;
+import org.apache.iotdb.db.service.thrift.ThriftService;
+import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
+
+public class MetaRaftHeartBeatService extends AbstractMetaRaftService
+    implements MetaRaftHeartBeatServiceMBean {
+
+  private MetaRaftHeartBeatService() {}
+
+  @Override
+  public ThriftService getImplementation() {
+    return MetaRaftHeartBeatServiceHolder.INSTANCE;
+  }
+
+  @Override
+  public ServiceType getID() {
+    return ServiceType.CLUSTER_META_HEART_BEAT_RPC_SERVICE;
+  }
+
+  @Override
+  public void initThriftServiceThread() throws IllegalAccessException {
+    initThriftServiceThread(
+        ThreadName.CLUSTER_META_HEARTBEAT_RPC_SERVICE.getName(),
+        ThreadName.CLUSTER_META_HEARTBEAT_RPC_CLIENT.getName(),
+        ThriftServiceThread.ServerType.HSHA);
+  }
+
+  @Override
+  public int getBindPort() {
+    return ClusterDescriptor.getInstance().getConfig().getInternalMetaPort()
+        + ClusterUtils.META_HEARTBEAT_PORT_OFFSET;
+  }
+
+  public static MetaRaftHeartBeatService getInstance() {
+    return MetaRaftHeartBeatServiceHolder.INSTANCE;
+  }
+
+  private static class MetaRaftHeartBeatServiceHolder {
+
+    private static final MetaRaftHeartBeatService INSTANCE = new MetaRaftHeartBeatService();
+
+    private MetaRaftHeartBeatServiceHolder() {}
+  }
+}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftService.java
new file mode 100644
index 0000000..d67f04d
--- /dev/null
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftService.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.cluster.server.raft;
+
+import org.apache.iotdb.cluster.config.ClusterDescriptor;
+import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.db.service.ServiceType;
+import org.apache.iotdb.db.service.thrift.ThriftService;
+import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
+
+public class MetaRaftService extends AbstractMetaRaftService implements MetaRaftServiceMBean {
+
+  private MetaRaftService() {}
+
+  @Override
+  public ThriftService getImplementation() {
+    return MetaRaftServiceHolder.INSTANCE;
+  }
+
+  @Override
+  public ServiceType getID() {
+    return ServiceType.CLUSTER_META_RPC_SERVICE;
+  }
+
+  @Override
+  public void initThriftServiceThread() throws IllegalAccessException {
+    initThriftServiceThread(
+        ThreadName.CLUSTER_META_RPC_SERVICE.getName(),
+        ThreadName.CLUSTER_META_RPC_CLIENT.getName(),
+        ThriftServiceThread.ServerType.SELECTOR);
+  }
+
+  @Override
+  public int getBindPort() {
+    return ClusterDescriptor.getInstance().getConfig().getInternalMetaPort();
+  }
+
+  public static MetaRaftService getInstance() {
+    return MetaRaftServiceHolder.INSTANCE;
+  }
+
+  private static class MetaRaftServiceHolder {
+
+    private static final MetaRaftService INSTANCE = new MetaRaftService();
+
+    private MetaRaftServiceHolder() {}
+  }
+}

[iotdb] 01/02: add cluster/server/raft packet

Posted by hx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hxd pushed a commit to branch cluster-
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 9790e83068cc980a5b1a42c6508f28a0c34500e0
Author: xiangdong huang <sa...@gmail.com>
AuthorDate: Wed Aug 11 01:01:53 2021 +0800

    add cluster/server/raft packet
---
 .gitignore                                         |  1 -
 .../org/apache/iotdb/cluster/ClusterIoTDB.java     |  1 +
 .../cluster/client/sync/SyncClientFactory.java     |  1 +
 .../iotdb/cluster/client/sync/SyncClientPool.java  |  1 +
 .../iotdb/cluster/client/sync/SyncDataClient.java  |  1 +
 .../client/sync/SyncDataHeartbeatClient.java       |  1 +
 .../iotdb/cluster/client/sync/SyncMetaClient.java  |  1 +
 .../client/sync/SyncMetaHeartbeatClient.java       |  1 +
 .../cluster/partition/slot/SlotPartitionTable.java |  1 +
 .../handlers/caller/AppendNodeEntryHandler.java    |  1 +
 .../server/handlers/caller/HeartbeatHandler.java   |  1 +
 .../cluster/server/heartbeat/HeartbeatThread.java  |  1 +
 .../server/heartbeat/MetaHeartbeatThread.java      |  1 +
 .../cluster/server/member/DataGroupMember.java     |  1 +
 .../cluster/server/member/MetaGroupMember.java     |  1 +
 .../iotdb/cluster/server/member/RaftMember.java    |  3 +-
 .../raft/DataRaftHeartBeatServiceMBean.java}       | 26 ++-------------
 .../raft/DataRaftServiceMBean.java}                | 26 ++-------------
 .../raft/MetaRaftHeartBeatServiceMBean.java}       | 26 ++-------------
 .../raft/MetaRaftServiceMBean.java}                | 26 ++-------------
 .../raft/RaftServiceHandler.java}                  | 37 +++++++++++-----------
 .../server/service/DataGroupServiceImpls.java      |  1 +
 .../cluster/server/service/MetaSyncService.java    |  1 +
 23 files changed, 44 insertions(+), 117 deletions(-)

diff --git a/.gitignore b/.gitignore
index 757a55b..a0b9c7b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,7 +3,6 @@
 **/logs/*
 **/lib/**
 **/data/**
-**/raft/**
 
 # Python runtime file
 **/__pycache__/**
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java
index a8dc705..332c7e1 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java
@@ -56,6 +56,7 @@ import org.apache.iotdb.db.service.JMXService;
 import org.apache.iotdb.db.service.RegisterManager;
 import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
 import org.apache.iotdb.db.utils.TestOnly;
+
 import org.apache.thrift.TException;
 import org.apache.thrift.async.TAsyncClientManager;
 import org.apache.thrift.protocol.TBinaryProtocol.Factory;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
index c34f1f3..fa0da62 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.cluster.client.sync;
 
 import org.apache.iotdb.cluster.rpc.thrift.Node;
 import org.apache.iotdb.cluster.rpc.thrift.RaftService;
+
 import org.apache.thrift.transport.TTransportException;
 
 import java.io.IOException;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientPool.java b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientPool.java
index 38d9942..cdfa5df 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientPool.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientPool.java
@@ -26,6 +26,7 @@ import org.apache.iotdb.cluster.rpc.thrift.RaftService.Client;
 import org.apache.iotdb.cluster.server.monitor.NodeStatusManager;
 import org.apache.iotdb.cluster.utils.ClusterNode;
 import org.apache.iotdb.db.utils.TestOnly;
+
 import org.apache.thrift.transport.TTransportException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncDataClient.java b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncDataClient.java
index f886363..dcda206 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncDataClient.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncDataClient.java
@@ -26,6 +26,7 @@ import org.apache.iotdb.db.utils.TestOnly;
 import org.apache.iotdb.rpc.RpcTransportFactory;
 import org.apache.iotdb.rpc.TConfigurationConst;
 import org.apache.iotdb.rpc.TimeoutChangeableTransport;
+
 import org.apache.thrift.protocol.TProtocol;
 import org.apache.thrift.protocol.TProtocolFactory;
 import org.apache.thrift.transport.TSocket;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncDataHeartbeatClient.java b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncDataHeartbeatClient.java
index c2c7f9a..7024466 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncDataHeartbeatClient.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncDataHeartbeatClient.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.cluster.rpc.thrift.Node;
 import org.apache.iotdb.cluster.utils.ClusterUtils;
 import org.apache.iotdb.rpc.RpcTransportFactory;
 import org.apache.iotdb.rpc.TConfigurationConst;
+
 import org.apache.thrift.protocol.TProtocolFactory;
 import org.apache.thrift.transport.TSocket;
 import org.apache.thrift.transport.TTransportException;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncMetaClient.java b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncMetaClient.java
index 588d0cd..28674b8 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncMetaClient.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncMetaClient.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.cluster.rpc.thrift.TSMetaService.Client;
 import org.apache.iotdb.cluster.utils.ClusterUtils;
 import org.apache.iotdb.rpc.RpcTransportFactory;
 import org.apache.iotdb.rpc.TConfigurationConst;
+
 import org.apache.thrift.protocol.TProtocol;
 import org.apache.thrift.protocol.TProtocolFactory;
 import org.apache.thrift.transport.TSocket;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncMetaHeartbeatClient.java b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncMetaHeartbeatClient.java
index 8c7abec..ad19287 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncMetaHeartbeatClient.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncMetaHeartbeatClient.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.cluster.rpc.thrift.Node;
 import org.apache.iotdb.cluster.utils.ClusterUtils;
 import org.apache.iotdb.rpc.RpcTransportFactory;
 import org.apache.iotdb.rpc.TConfigurationConst;
+
 import org.apache.thrift.protocol.TProtocolFactory;
 import org.apache.thrift.transport.TSocket;
 import org.apache.thrift.transport.TTransportException;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/partition/slot/SlotPartitionTable.java b/cluster/src/main/java/org/apache/iotdb/cluster/partition/slot/SlotPartitionTable.java
index 61803ef..7a46baa 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/partition/slot/SlotPartitionTable.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/partition/slot/SlotPartitionTable.java
@@ -32,6 +32,7 @@ import org.apache.iotdb.cluster.rpc.thrift.Node;
 import org.apache.iotdb.cluster.rpc.thrift.RaftNode;
 import org.apache.iotdb.cluster.utils.NodeSerializeUtils;
 import org.apache.iotdb.db.utils.SerializeUtils;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/AppendNodeEntryHandler.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/AppendNodeEntryHandler.java
index 6da7370..2945726 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/AppendNodeEntryHandler.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/AppendNodeEntryHandler.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.cluster.server.member.RaftMember;
 import org.apache.iotdb.cluster.server.monitor.Peer;
 import org.apache.iotdb.cluster.server.monitor.Timer;
 import org.apache.iotdb.cluster.server.monitor.Timer.Statistic;
+
 import org.apache.thrift.async.AsyncMethodCallback;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/HeartbeatHandler.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/HeartbeatHandler.java
index 4b4f4b6..bccb16f 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/HeartbeatHandler.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/HeartbeatHandler.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.cluster.rpc.thrift.HeartBeatResponse;
 import org.apache.iotdb.cluster.rpc.thrift.Node;
 import org.apache.iotdb.cluster.server.member.RaftMember;
 import org.apache.iotdb.cluster.server.monitor.Peer;
+
 import org.apache.thrift.async.AsyncMethodCallback;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/HeartbeatThread.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/HeartbeatThread.java
index a7afd0b..e5a59fe 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/HeartbeatThread.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/HeartbeatThread.java
@@ -33,6 +33,7 @@ import org.apache.iotdb.cluster.server.handlers.caller.ElectionHandler;
 import org.apache.iotdb.cluster.server.handlers.caller.HeartbeatHandler;
 import org.apache.iotdb.cluster.server.member.RaftMember;
 import org.apache.iotdb.cluster.utils.ClientUtils;
+
 import org.apache.thrift.TException;
 import org.apache.thrift.transport.TTransportException;
 import org.slf4j.Logger;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/MetaHeartbeatThread.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/MetaHeartbeatThread.java
index de948ac..f8ce0b8 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/MetaHeartbeatThread.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/MetaHeartbeatThread.java
@@ -22,6 +22,7 @@ package org.apache.iotdb.cluster.server.heartbeat;
 import org.apache.iotdb.cluster.rpc.thrift.Node;
 import org.apache.iotdb.cluster.server.NodeCharacter;
 import org.apache.iotdb.cluster.server.member.MetaGroupMember;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
index d288b86..aaba50f 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
@@ -94,6 +94,7 @@ import org.apache.iotdb.db.utils.TestOnly;
 import org.apache.iotdb.service.rpc.thrift.EndPoint;
 import org.apache.iotdb.service.rpc.thrift.TSStatus;
 import org.apache.iotdb.tsfile.utils.Pair;
+
 import org.apache.thrift.protocol.TProtocolFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
index 97822c2..b3dcc7a 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
@@ -96,6 +96,7 @@ import org.apache.iotdb.db.utils.TimeValuePairUtils.Intervals;
 import org.apache.iotdb.service.rpc.thrift.EndPoint;
 import org.apache.iotdb.service.rpc.thrift.TSStatus;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
+
 import org.apache.thrift.TException;
 import org.apache.thrift.protocol.TProtocolFactory;
 import org.apache.thrift.transport.TTransportException;
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 2ee8626..87238c4 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
@@ -19,7 +19,6 @@
 
 package org.apache.iotdb.cluster.server.member;
 
-import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.iotdb.cluster.ClusterIoTDB;
 import org.apache.iotdb.cluster.client.async.AsyncClientPool;
 import org.apache.iotdb.cluster.client.sync.SyncClientAdaptor;
@@ -80,6 +79,8 @@ import org.apache.iotdb.db.utils.TestOnly;
 import org.apache.iotdb.rpc.RpcUtils;
 import org.apache.iotdb.rpc.TSStatusCode;
 import org.apache.iotdb.service.rpc.thrift.TSStatus;
+
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatServiceMBean.java
similarity index 53%
copy from cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
copy to cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatServiceMBean.java
index c34f1f3..6f57775 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatServiceMBean.java
@@ -16,28 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.iotdb.cluster.server.raft;
 
-package org.apache.iotdb.cluster.client.sync;
-
-import org.apache.iotdb.cluster.rpc.thrift.Node;
-import org.apache.iotdb.cluster.rpc.thrift.RaftService;
-import org.apache.thrift.transport.TTransportException;
-
-import java.io.IOException;
-
-public interface SyncClientFactory {
-
-  /**
-   * Get a client which will connect the given node and be cached in the given pool.
-   *
-   * @param node the cluster node the client will connect.
-   * @param pool the pool that will cache the client for reusing.
-   * @return
-   * @throws IOException
-   */
-  RaftService.Client getSyncClient(Node node, SyncClientPool pool) throws TTransportException;
-
-  default String nodeInfo(Node node) {
-    return node.toString();
-  }
-}
+public interface DataRaftHeartBeatServiceMBean {}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftServiceMBean.java
similarity index 53%
copy from cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
copy to cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftServiceMBean.java
index c34f1f3..dbf80a1 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftServiceMBean.java
@@ -16,28 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.iotdb.cluster.server.raft;
 
-package org.apache.iotdb.cluster.client.sync;
-
-import org.apache.iotdb.cluster.rpc.thrift.Node;
-import org.apache.iotdb.cluster.rpc.thrift.RaftService;
-import org.apache.thrift.transport.TTransportException;
-
-import java.io.IOException;
-
-public interface SyncClientFactory {
-
-  /**
-   * Get a client which will connect the given node and be cached in the given pool.
-   *
-   * @param node the cluster node the client will connect.
-   * @param pool the pool that will cache the client for reusing.
-   * @return
-   * @throws IOException
-   */
-  RaftService.Client getSyncClient(Node node, SyncClientPool pool) throws TTransportException;
-
-  default String nodeInfo(Node node) {
-    return node.toString();
-  }
-}
+public interface DataRaftServiceMBean {}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatServiceMBean.java
similarity index 53%
copy from cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
copy to cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatServiceMBean.java
index c34f1f3..4db647c 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatServiceMBean.java
@@ -16,28 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.iotdb.cluster.server.raft;
 
-package org.apache.iotdb.cluster.client.sync;
-
-import org.apache.iotdb.cluster.rpc.thrift.Node;
-import org.apache.iotdb.cluster.rpc.thrift.RaftService;
-import org.apache.thrift.transport.TTransportException;
-
-import java.io.IOException;
-
-public interface SyncClientFactory {
-
-  /**
-   * Get a client which will connect the given node and be cached in the given pool.
-   *
-   * @param node the cluster node the client will connect.
-   * @param pool the pool that will cache the client for reusing.
-   * @return
-   * @throws IOException
-   */
-  RaftService.Client getSyncClient(Node node, SyncClientPool pool) throws TTransportException;
-
-  default String nodeInfo(Node node) {
-    return node.toString();
-  }
-}
+public interface MetaRaftHeartBeatServiceMBean {}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftServiceMBean.java
similarity index 53%
copy from cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
copy to cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftServiceMBean.java
index c34f1f3..43f75b9 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftServiceMBean.java
@@ -16,28 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.iotdb.cluster.server.raft;
 
-package org.apache.iotdb.cluster.client.sync;
-
-import org.apache.iotdb.cluster.rpc.thrift.Node;
-import org.apache.iotdb.cluster.rpc.thrift.RaftService;
-import org.apache.thrift.transport.TTransportException;
-
-import java.io.IOException;
-
-public interface SyncClientFactory {
-
-  /**
-   * Get a client which will connect the given node and be cached in the given pool.
-   *
-   * @param node the cluster node the client will connect.
-   * @param pool the pool that will cache the client for reusing.
-   * @return
-   * @throws IOException
-   */
-  RaftService.Client getSyncClient(Node node, SyncClientPool pool) throws TTransportException;
-
-  default String nodeInfo(Node node) {
-    return node.toString();
-  }
-}
+public interface MetaRaftServiceMBean {}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/RaftServiceHandler.java
similarity index 53%
copy from cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
copy to cluster/src/main/java/org/apache/iotdb/cluster/server/raft/RaftServiceHandler.java
index c34f1f3..f1316be 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientFactory.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/RaftServiceHandler.java
@@ -16,28 +16,27 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.iotdb.cluster.server.raft;
 
-package org.apache.iotdb.cluster.client.sync;
+import org.apache.thrift.protocol.TProtocol;
+import org.apache.thrift.server.ServerContext;
+import org.apache.thrift.server.TServerEventHandler;
+import org.apache.thrift.transport.TTransport;
 
-import org.apache.iotdb.cluster.rpc.thrift.Node;
-import org.apache.iotdb.cluster.rpc.thrift.RaftService;
-import org.apache.thrift.transport.TTransportException;
+public class RaftServiceHandler implements TServerEventHandler {
+  @Override
+  public void preServe() {}
 
-import java.io.IOException;
-
-public interface SyncClientFactory {
+  @Override
+  public ServerContext createContext(TProtocol tProtocol, TProtocol tProtocol1) {
+    return null;
+  }
 
-  /**
-   * Get a client which will connect the given node and be cached in the given pool.
-   *
-   * @param node the cluster node the client will connect.
-   * @param pool the pool that will cache the client for reusing.
-   * @return
-   * @throws IOException
-   */
-  RaftService.Client getSyncClient(Node node, SyncClientPool pool) throws TTransportException;
+  @Override
+  public void deleteContext(
+      ServerContext serverContext, TProtocol tProtocol, TProtocol tProtocol1) {}
 
-  default String nodeInfo(Node node) {
-    return node.toString();
-  }
+  @Override
+  public void processContext(
+      ServerContext serverContext, TTransport tTransport, TTransport tTransport1) {}
 }
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupServiceImpls.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupServiceImpls.java
index b2fb80c..b355766 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupServiceImpls.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupServiceImpls.java
@@ -41,6 +41,7 @@ import org.apache.iotdb.cluster.server.monitor.NodeReport.DataMemberReport;
 import org.apache.iotdb.cluster.utils.IOUtils;
 import org.apache.iotdb.db.utils.TestOnly;
 import org.apache.iotdb.service.rpc.thrift.TSStatus;
+
 import org.apache.thrift.TException;
 import org.apache.thrift.async.AsyncMethodCallback;
 import org.apache.thrift.protocol.TProtocolFactory;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/MetaSyncService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/MetaSyncService.java
index 7d20e96..d405046 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/MetaSyncService.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/MetaSyncService.java
@@ -40,6 +40,7 @@ import org.apache.iotdb.cluster.server.Response;
 import org.apache.iotdb.cluster.server.member.MetaGroupMember;
 import org.apache.iotdb.cluster.utils.ClientUtils;
 import org.apache.iotdb.cluster.utils.ClusterUtils;
+
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;