You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by ji...@apache.org on 2017/01/31 21:17:00 UTC
[15/54] [abbrv] incubator-ratis git commit: Small fixes to RaftServer
and StateMachine related interfaces after recent refactorings
Small fixes to RaftServer and StateMachine related interfaces after recent refactorings
Project: http://git-wip-us.apache.org/repos/asf/incubator-ratis/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ratis/commit/bdd51643
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ratis/tree/bdd51643
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ratis/diff/bdd51643
Branch: refs/heads/master
Commit: bdd516434a39714632dc4e563ed055348ef84c4f
Parents: f58b5ef
Author: Enis Soztutar <en...@apache.org>
Authored: Fri Jan 6 14:15:14 2017 -0800
Committer: Enis Soztutar <en...@apache.org>
Committed: Fri Jan 6 14:15:23 2017 -0800
----------------------------------------------------------------------
raft-server/pom.xml | 1 -
.../src/main/java/org/apache/raft/server/RaftServer.java | 7 +++++++
.../main/java/org/apache/raft/server/impl/RaftServerImpl.java | 3 ++-
.../main/java/org/apache/raft/statemachine/StateMachine.java | 5 +++++
.../java/org/apache/raft/statemachine/TransactionContext.java | 2 +-
5 files changed, 15 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/bdd51643/raft-server/pom.xml
----------------------------------------------------------------------
diff --git a/raft-server/pom.xml b/raft-server/pom.xml
index 584dc9a..d992306 100644
--- a/raft-server/pom.xml
+++ b/raft-server/pom.xml
@@ -30,7 +30,6 @@
<dependency>
<artifactId>raft-proto-shaded</artifactId>
<groupId>com.hortonworks.raft</groupId>
- <scope>provided</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/bdd51643/raft-server/src/main/java/org/apache/raft/server/RaftServer.java
----------------------------------------------------------------------
diff --git a/raft-server/src/main/java/org/apache/raft/server/RaftServer.java b/raft-server/src/main/java/org/apache/raft/server/RaftServer.java
index aa4dfbf..bb49c5a 100644
--- a/raft-server/src/main/java/org/apache/raft/server/RaftServer.java
+++ b/raft-server/src/main/java/org/apache/raft/server/RaftServer.java
@@ -20,6 +20,7 @@ package org.apache.raft.server;
import org.apache.raft.protocol.RaftClientAsynchronousProtocol;
import org.apache.raft.protocol.RaftClientProtocol;
import org.apache.raft.server.protocol.RaftServerProtocol;
+import org.apache.raft.statemachine.StateMachine;
import java.io.Closeable;
@@ -34,4 +35,10 @@ public interface RaftServer extends Closeable, RaftServerProtocol,
/** Start this server. */
void start();
+
+ /**
+ * Returns the StateMachine instance.
+ * @return the StateMachine instance.
+ */
+ StateMachine getStateMachine();
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/bdd51643/raft-server/src/main/java/org/apache/raft/server/impl/RaftServerImpl.java
----------------------------------------------------------------------
diff --git a/raft-server/src/main/java/org/apache/raft/server/impl/RaftServerImpl.java b/raft-server/src/main/java/org/apache/raft/server/impl/RaftServerImpl.java
index c8a2e28..4b8c442 100644
--- a/raft-server/src/main/java/org/apache/raft/server/impl/RaftServerImpl.java
+++ b/raft-server/src/main/java/org/apache/raft/server/impl/RaftServerImpl.java
@@ -114,7 +114,8 @@ public class RaftServerImpl implements RaftServer {
return RaftUtils.getRandomBetween(minTimeoutMs, maxTimeoutMs);
}
- StateMachine getStateMachine() {
+ @Override
+ public StateMachine getStateMachine() {
return this.stateMachine;
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/bdd51643/raft-server/src/main/java/org/apache/raft/statemachine/StateMachine.java
----------------------------------------------------------------------
diff --git a/raft-server/src/main/java/org/apache/raft/statemachine/StateMachine.java b/raft-server/src/main/java/org/apache/raft/statemachine/StateMachine.java
index 935a83a..3dedf88 100644
--- a/raft-server/src/main/java/org/apache/raft/statemachine/StateMachine.java
+++ b/raft-server/src/main/java/org/apache/raft/statemachine/StateMachine.java
@@ -31,6 +31,11 @@ import java.io.IOException;
import java.util.Collection;
import java.util.concurrent.CompletableFuture;
+/**
+ * StateMachine is the entry point for the custom implementation of replicated state as defined in
+ * the "State Machine Approach" in the literature
+ * (see https://en.wikipedia.org/wiki/State_machine_replication).
+ */
public interface StateMachine extends Closeable {
/**
* Initializes the State Machine with the given properties and storage. The state machine is
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/bdd51643/raft-server/src/main/java/org/apache/raft/statemachine/TransactionContext.java
----------------------------------------------------------------------
diff --git a/raft-server/src/main/java/org/apache/raft/statemachine/TransactionContext.java b/raft-server/src/main/java/org/apache/raft/statemachine/TransactionContext.java
index 19b8250..675ada9 100644
--- a/raft-server/src/main/java/org/apache/raft/statemachine/TransactionContext.java
+++ b/raft-server/src/main/java/org/apache/raft/statemachine/TransactionContext.java
@@ -97,7 +97,7 @@ public class TransactionContext {
SMLogEntryProto smLogEntryProto, Object stateMachineContext) {
this(stateMachine);
this.clientRequest = Optional.of(clientRequest);
- this.smLogEntryProto = Optional.of(smLogEntryProto);
+ this.smLogEntryProto = Optional.ofNullable(smLogEntryProto);
this.stateMachineContext = Optional.ofNullable(stateMachineContext);
}