You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by sh...@apache.org on 2018/11/17 04:32:14 UTC
incubator-ratis git commit: RATIS-365. Implement
RaftServer.getGroupIds() using the key set of ImplMap. Contributed by Tsz Wo
Nicholas Sze.
Repository: incubator-ratis
Updated Branches:
refs/heads/master 5b8bbee83 -> df538e505
RATIS-365. Implement RaftServer.getGroupIds() using the key set of ImplMap. Contributed by Tsz Wo Nicholas Sze.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ratis/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ratis/commit/df538e50
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ratis/tree/df538e50
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ratis/diff/df538e50
Branch: refs/heads/master
Commit: df538e50531379488e768bc640721b00f4a43e6f
Parents: 5b8bbee
Author: Shashikant Banerjee <sh...@apache.org>
Authored: Sat Nov 17 10:01:45 2018 +0530
Committer: Shashikant Banerjee <sh...@apache.org>
Committed: Sat Nov 17 10:01:45 2018 +0530
----------------------------------------------------------------------
.../protocol/AdminAsynchronousProtocol.java | 7 ++----
.../org/apache/ratis/server/RaftServer.java | 2 +-
.../ratis/server/impl/RaftServerImpl.java | 9 -------
.../ratis/server/impl/RaftServerProxy.java | 25 ++++++++++----------
4 files changed, 15 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/df538e50/ratis-common/src/main/java/org/apache/ratis/protocol/AdminAsynchronousProtocol.java
----------------------------------------------------------------------
diff --git a/ratis-common/src/main/java/org/apache/ratis/protocol/AdminAsynchronousProtocol.java b/ratis-common/src/main/java/org/apache/ratis/protocol/AdminAsynchronousProtocol.java
index 4d8bd77..3e69bb8 100644
--- a/ratis-common/src/main/java/org/apache/ratis/protocol/AdminAsynchronousProtocol.java
+++ b/ratis-common/src/main/java/org/apache/ratis/protocol/AdminAsynchronousProtocol.java
@@ -17,16 +17,13 @@
*/
package org.apache.ratis.protocol;
-import java.io.IOException;
import java.util.concurrent.CompletableFuture;
/** Asynchronous version of {@link AdminProtocol}. */
public interface AdminAsynchronousProtocol {
- CompletableFuture<GroupListReply> getGroupListAsync(
- GroupListRequest request) throws IOException;
+ CompletableFuture<GroupListReply> getGroupListAsync(GroupListRequest request);
- CompletableFuture<GroupInfoReply> getGroupInfoAsync(
- GroupInfoRequest request) throws IOException;
+ CompletableFuture<GroupInfoReply> getGroupInfoAsync(GroupInfoRequest request);
CompletableFuture<RaftClientReply> groupManagementAsync(GroupManagementRequest request);
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/df538e50/ratis-server/src/main/java/org/apache/ratis/server/RaftServer.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/RaftServer.java b/ratis-server/src/main/java/org/apache/ratis/server/RaftServer.java
index 47055b8..d7deb15 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/RaftServer.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/RaftServer.java
@@ -42,7 +42,7 @@ public interface RaftServer extends Closeable, RpcType.Get,
RaftPeerId getId();
/** @return the group IDs the server is part of. */
- Iterable<RaftGroupId> getGroupIds() throws IOException;
+ Iterable<RaftGroupId> getGroupIds();
/** @return the groups the server is part of. */
Iterable<RaftGroup> getGroups() throws IOException;
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/df538e50/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
index 0c0642c..21c2b59 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
@@ -344,15 +344,6 @@ public class RaftServerImpl implements RaftServerProtocol, RaftServerAsynchronou
return infos;
}
- GroupListReply getGroupList(GroupListRequest request) {
- Iterable<RaftGroupId> groupIds = null;
- try {
- groupIds = proxy.getGroupIds();
- } catch (IOException e) {
- }
- return new GroupListReply(request, groupIds);
- }
-
GroupInfoReply getGroupInfo(GroupInfoRequest request) {
return new GroupInfoReply(request, getRoleInfoProto(),
state.getStorage().getStorageDir().hasMetaFile(), getCommitInfos(), getGroup());
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/df538e50/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerProxy.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerProxy.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerProxy.java
index a4458f4..6c78ac9 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerProxy.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerProxy.java
@@ -61,7 +61,7 @@ public class RaftServerProxy implements RaftServer {
/**
* A map: {@link RaftGroupId} -> {@link RaftServerImpl} futures.
*
- * The map is synchronized for mutations and the bulk {@link #getAll()} method
+ * The map is synchronized for mutations and the bulk {@link #getGroupIds()}/{@link #getAll()} methods
* but the (non-bulk) {@link #get(RaftGroupId)} and {@link #containsGroup(RaftGroupId)} methods are not.
* The thread safety and atomicity guarantees for the non-bulk methods are provided by {@link ConcurrentMap}.
*/
@@ -103,6 +103,10 @@ public class RaftServerProxy implements RaftServer {
.forEach(impl -> impl.shutdown(false));
}
+ synchronized List<RaftGroupId> getGroupIds() {
+ return new ArrayList<>(map.keySet());
+ }
+
synchronized List<CompletableFuture<RaftServerImpl>> getAll() {
return new ArrayList<>(map.values());
}
@@ -217,8 +221,8 @@ public class RaftServerProxy implements RaftServer {
}
@Override
- public Iterable<RaftGroupId> getGroupIds() throws IOException {
- return getImpls().stream().map(RaftServerImpl::getGroupId).collect(Collectors.toList());
+ public Iterable<RaftGroupId> getGroupIds() {
+ return impls.getGroupIds();
}
@Override
@@ -390,17 +394,13 @@ public class RaftServerProxy implements RaftServer {
}
@Override
- public GroupListReply getGroupList(GroupListRequest request)
- throws IOException {
- return RaftServerImpl.waitForReply(getId(), request, getGroupListAsync(request),
- r -> null);
+ public GroupListReply getGroupList(GroupListRequest request) {
+ return new GroupListReply(request, getGroupIds());
}
@Override
- public CompletableFuture<GroupListReply> getGroupListAsync(
- GroupListRequest request) {
- return getImplFuture(request.getRaftGroupId()).thenApplyAsync(
- server -> server.getGroupList(request));
+ public CompletableFuture<GroupListReply> getGroupListAsync(GroupListRequest request) {
+ return CompletableFuture.completedFuture(getGroupList(request));
}
@Override
@@ -409,12 +409,11 @@ public class RaftServerProxy implements RaftServer {
}
@Override
- public CompletableFuture<GroupInfoReply> getGroupInfoAsync(GroupInfoRequest request) throws IOException {
+ public CompletableFuture<GroupInfoReply> getGroupInfoAsync(GroupInfoRequest request) {
return getImplFuture(request.getRaftGroupId()).thenApplyAsync(
server -> server.getGroupInfo(request));
}
-
/**
* Handle a raft configuration change request from client.
*/