Skip to content

Commit

Permalink
Remove cluster membership changes and passive members.
Browse files Browse the repository at this point in the history
  • Loading branch information
kuujo committed May 28, 2015
1 parent 5117804 commit 75894fc
Show file tree
Hide file tree
Showing 29 changed files with 92 additions and 3,061 deletions.
Expand Up @@ -91,7 +91,7 @@ public CompletableFuture<Void> configure(TypedMemberInfo... membersInfo) {
remoteMembers.remove(member.id());
}));
}
} else if (member.type() == Member.Type.PASSIVE || member.type == Member.Type.CLIENT) {
} else if (member.type == Member.Type.CLIENT) {
futures.add(member.close().thenRun(() -> {
members.remove(member.id());
remoteMembers.remove(member.id());
Expand All @@ -105,49 +105,34 @@ public CompletableFuture<Void> configure(TypedMemberInfo... membersInfo) {
* Configures the set of active cluster members.
*/
public CompletableFuture<Void> configure(MemberInfo... membersInfo) {
boolean updated = false;

List<CompletableFuture> futures = new ArrayList<>();
for (MemberInfo memberInfo : membersInfo) {
if (memberInfo.id() == member().id()) {
localMember.type = Member.Type.ACTIVE;
updated = true;
} else if (!remoteMembers.containsKey(memberInfo.id())) {
if (memberInfo.id() != localMember.id() && !remoteMembers.containsKey(memberInfo.id())) {
ManagedRemoteMember member = createMember(memberInfo);
futures.add(member.connect().thenRun(() -> {
member.type = Member.Type.ACTIVE;
member.type = Member.Type.CLIENT;
members.put(member.id(), member);
remoteMembers.put(member.id(), member);
}));
}
}

if (!updated) {
localMember.type = Member.Type.CLIENT;
}

for (ManagedRemoteMember member : remoteMembers.values()) {
if (member.type() == Member.Type.ACTIVE) {
boolean isConfigured = false;
if (member.type() == Member.Type.CLIENT) {
boolean configured = false;
for (MemberInfo memberInfo : membersInfo) {
if (memberInfo.id() == member.id()) {
member.type = Member.Type.ACTIVE;
isConfigured = true;
configured = true;
break;
}
}

if (!isConfigured) {
if (!configured) {
futures.add(member.close().thenRun(() -> {
members.remove(member.id());
remoteMembers.remove(member.id());
}));
}
} else if (member.type() == Member.Type.PASSIVE || member.type == Member.Type.CLIENT) {
futures.add(member.close().thenRun(() -> {
members.remove(member.id());
remoteMembers.remove(member.id());
}));
}
}
return CompletableFuture.allOf(futures.toArray(new CompletableFuture[futures.size()]));
Expand Down Expand Up @@ -192,60 +177,6 @@ public void sessionExpired(Session session) {
});
}

/**
* Joins a member to the cluster.
*/
public CompletableFuture<Void> join(MemberInfo info) {
ManagedRemoteMember member = remoteMembers.get(info.id());
if (member == null) {
member = createMember(info);
members.put(info.id(), member);
remoteMembers.put(info.id(), member);
}
member.type = Member.Type.PASSIVE;
member.status = Member.Status.DEAD;
return CompletableFuture.completedFuture(null);
}

/**
* Promotes a member.
*/
public CompletableFuture<Void> promote(MemberInfo info) {
ManagedRemoteMember member = remoteMembers.get(info.id());
if (member != null) {
member.type = Member.Type.ACTIVE;
}
return CompletableFuture.completedFuture(null);
}

/**
* Demotes a member.
*/
public CompletableFuture<Void> demote(MemberInfo info) {
ManagedRemoteMember member = remoteMembers.get(info.id());
if (member != null) {
member.type = Member.Type.PASSIVE;
}
return CompletableFuture.completedFuture(null);
}

/**
* Leaves a member from the cluster.
*/
public CompletableFuture<Void> leave(MemberInfo info) {
ManagedRemoteMember member = remoteMembers.get(info.id());
if (member != null) {
if (member.session().isExpired()) {
members.remove(info.id());
remoteMembers.remove(info.id());
return member.close();
} else {
member.type = Member.Type.CLIENT;
}
}
return CompletableFuture.completedFuture(null);
}

/**
* Creates a new remote member.
*/
Expand Down
5 changes: 0 additions & 5 deletions cluster/src/main/java/net/kuujo/copycat/cluster/Member.java
Expand Up @@ -36,11 +36,6 @@ static enum Type {
*/
CLIENT,

/**
* Passive member.
*/
PASSIVE,

/**
* Active member.
*/
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

36 changes: 0 additions & 36 deletions raft/src/main/java/net/kuujo/copycat/raft/log/entry/JoinEntry.java

This file was deleted.

This file was deleted.

0 comments on commit 75894fc

Please sign in to comment.