This is an automated email from the ASF dual-hosted git repository.
szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ratis.git
The following commit(s) were added to refs/heads/master by this push:
new 9cbf1ef RATIS-691. Fix checkstyle violations in ratis-logservice.
Contributed by Dinesh Chitlangia
9cbf1ef is described below
commit 9cbf1efaf0c58c4702caa724f2e602839386c607
Author: Tsz Wo Nicholas Sze <[email protected]>
AuthorDate: Thu Oct 17 19:31:38 2019 +0800
RATIS-691. Fix checkstyle violations in ratis-logservice. Contributed by
Dinesh Chitlangia
---
.../apache/ratis/logservice/api/LogMessage.java | 2 +-
.../org/apache/ratis/logservice/api/LogName.java | 2 +-
.../org/apache/ratis/logservice/api/LogStream.java | 2 +-
.../ratis/logservice/client/LogServiceClient.java | 8 +-
.../apache/ratis/logservice/common/Constants.java | 4 +-
.../logservice/impl/ArchiveHdfsLogReader.java | 3 -
.../logservice/impl/ArchiveHdfsLogWriter.java | 1 -
.../logservice/impl/ArchivedLogStreamImpl.java | 12 ++-
.../logservice/impl/ExportedLogStreamImpl.java | 2 +-
.../ratis/logservice/impl/LogReaderImpl.java | 4 +-
.../ratis/logservice/impl/LogStreamImpl.java | 16 ++--
.../apache/ratis/logservice/server/LogServer.java | 4 +-
.../ratis/logservice/server/LogStateMachine.java | 35 ++++---
.../ratis/logservice/server/MetaStateMachine.java | 68 ++++++--------
.../ratis/logservice/server/MetadataServer.java | 6 +-
.../ratis/logservice/server/RaftLogReader.java | 12 +--
.../ratis/logservice/shell/CommandFactory.java | 2 +-
.../ratis/logservice/shell/LogServiceShell.java | 4 +-
.../logservice/shell/LogServiceShellOpts.java | 6 +-
.../ratis/logservice/tool/VerificationTool.java | 104 ++++++++++++++-------
.../ratis/logservice/util/LogServiceUtils.java | 4 +-
.../logservice/util/MetaServiceProtoUtil.java | 7 +-
.../ratis/logservice/server/TestMetaServer.java | 4 +-
23 files changed, 173 insertions(+), 139 deletions(-)
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogMessage.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogMessage.java
index 82ca592..34937a5 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogMessage.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogMessage.java
@@ -24,7 +24,7 @@ public abstract class LogMessage implements Message {
/*
* Log name
*/
- protected LogName logName;
+ private LogName logName;
/**
* Get log name
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogName.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogName.java
index 00496dc..0d61c09 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogName.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogName.java
@@ -28,7 +28,7 @@ import
org.apache.ratis.thirdparty.com.google.protobuf.InvalidProtocolBufferExce
/**
* Identifier to uniquely identify a {@link LogStream}.
*/
-public class LogName {
+public final class LogName {
// It's pretty likely that what uniquely defines a LogStream
// to change over time. We should account for this by making an
// API which can naturally evolve.
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogStream.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogStream.java
index 38d4159..5238ac9 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogStream.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/api/LogStream.java
@@ -30,7 +30,7 @@ public interface LogStream extends AutoCloseable{
/**
* An enumeration that defines the current state of a LogStream
*/
- public enum State {
+ enum State {
/*
Log is open to receive writes/read request
*/
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/client/LogServiceClient.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/client/LogServiceClient.java
index 05b9292..1a40005 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/client/LogServiceClient.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/client/LogServiceClient.java
@@ -54,8 +54,8 @@ public class LogServiceClient implements AutoCloseable {
// the raft client for meta quorum. All DML operations are going using
this client.
- final private RaftClient client;
- final private LogServiceConfiguration config;
+ private final RaftClient client;
+ private final LogServiceConfiguration config;
/**
* Constuctor. Build raft client for meta quorum
@@ -264,9 +264,9 @@ public class LogServiceClient implements AutoCloseable {
* Updates a log with the new configuration object, overriding
* the previous configuration.
*
- * @param config The new configuration object
+ * @param conf The new configuration object
*/
- void updateConfiguration(LogName name, LogServiceConfiguration config) {
+ void updateConfiguration(LogName name, LogServiceConfiguration conf) {
//TODO: write me
}
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/common/Constants.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/common/Constants.java
index 7151341..94c0989 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/common/Constants.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/common/Constants.java
@@ -22,7 +22,9 @@ import org.apache.ratis.protocol.RaftGroupId;
import java.util.UUID;
-public class Constants {
+public final class Constants {
+ private Constants() {
+ }
public static final UUID META_GROUP_UUID = new UUID(0,1);
public static final RaftGroupId META_GROUP_ID =
RaftGroupId.valueOf(META_GROUP_UUID);
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchiveHdfsLogReader.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchiveHdfsLogReader.java
index 1d5a403..0b8b9b9 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchiveHdfsLogReader.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchiveHdfsLogReader.java
@@ -18,10 +18,8 @@
package org.apache.ratis.logservice.impl;
import java.io.EOFException;
-import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
-import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
@@ -36,7 +34,6 @@ import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.ratis.logservice.api.ArchiveLogReader;
-import org.apache.ratis.logservice.api.LogName;
import org.apache.ratis.logservice.util.LogServiceUtils;
import org.apache.ratis.thirdparty.com.google.common.base.Preconditions;
import org.slf4j.Logger;
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchiveHdfsLogWriter.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchiveHdfsLogWriter.java
index e91cd86..3a92f73 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchiveHdfsLogWriter.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchiveHdfsLogWriter.java
@@ -29,7 +29,6 @@ import org.apache.hadoop.fs.Path;
import org.apache.ratis.logservice.api.ArchiveLogWriter;
import org.apache.ratis.logservice.api.LogName;
import org.apache.ratis.logservice.util.LogServiceUtils;
-import org.apache.ratis.util.LogUtils;
public class ArchiveHdfsLogWriter implements ArchiveLogWriter {
private final Configuration configuration;
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchivedLogStreamImpl.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchivedLogStreamImpl.java
index 682d6c1..b854c53 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchivedLogStreamImpl.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ArchivedLogStreamImpl.java
@@ -42,16 +42,20 @@ public class ArchivedLogStreamImpl implements LogStream {
/*
* Log stream name
*/
- LogName name;
+ private LogName name;
/*
* Log stream configuration
*/
- LogServiceConfiguration config;
+ private LogServiceConfiguration config;
+
/*
* State
*/
- State state;
+ private State state;
+ protected void setState(State state) {
+ this.state = state;
+ }
public ArchivedLogStreamImpl(LogName name, LogServiceConfiguration config) {
this(name, config.get(Constants.LOG_SERVICE_ARCHIVAL_LOCATION_KEY));
@@ -67,7 +71,7 @@ public class ArchivedLogStreamImpl implements LogStream {
}
protected void init() {
- state = State.ARCHIVED;
+ this.state = State.ARCHIVED;
}
@Override
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ExportedLogStreamImpl.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ExportedLogStreamImpl.java
index ae9a7c2..5b7db61 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ExportedLogStreamImpl.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ExportedLogStreamImpl.java
@@ -30,6 +30,6 @@ public class ExportedLogStreamImpl extends
ArchivedLogStreamImpl {
@Override
protected void init() {
- state = State.CLOSED;
+ setState(State.CLOSED);
}
}
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogReaderImpl.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogReaderImpl.java
index cbbf82d..38437b1 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogReaderImpl.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogReaderImpl.java
@@ -58,7 +58,7 @@ public class LogReaderImpl implements LogReader {
/*
* offset
*/
- long currentRecordId;
+ private long currentRecordId;
public LogReaderImpl(LogStream logStream) {
this.parent = logStream;
@@ -123,7 +123,7 @@ public class LogReaderImpl implements LogReader {
@Override
public List<ByteBuffer> readBulk(int numRecords) throws IOException {
- Preconditions.checkArgument(numRecords > 0, "number of records
must be greater than 0");
+ Preconditions.checkArgument(numRecords > 0, "number of records must be
greater than 0");
try {
RaftClientReply reply = raftClient
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogStreamImpl.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogStreamImpl.java
index 655fc95..6f73fa4 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogStreamImpl.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogStreamImpl.java
@@ -48,28 +48,28 @@ public class LogStreamImpl implements LogStream {
/*
* Log stream listeners
*/
- List<RecordListener> listeners;
+ private List<RecordListener> listeners;
/*
* Log stream name
*/
- LogName name;
+ private LogName name;
/*
* Parent log service instance
*/
- RaftClient raftClient;
+ private RaftClient raftClient;
/*
* Log stream configuration
*/
- LogServiceConfiguration config;
+ private LogServiceConfiguration config;
/*
* State
*/
- LogStream.State state;
+ private LogStream.State state;
/*
* Length
*/
- long length;
+ private long length;
public LogStreamImpl(LogName name, RaftClient raftClient) {
@@ -88,8 +88,8 @@ public class LogStreamImpl implements LogStream {
private void init() {
// TODO create new state machine. etc
- state = State.OPEN;
- listeners = Collections.synchronizedList(new ArrayList<RecordListener>());
+ this.state = State.OPEN;
+ this.listeners = Collections.synchronizedList(new
ArrayList<RecordListener>());
}
@Override
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/LogServer.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/LogServer.java
index 6a3e926..860c98d 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/LogServer.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/LogServer.java
@@ -189,8 +189,8 @@ public class LogServer extends BaseServer {
private class HeartbeatSender implements Runnable {
- RaftPeer peer;
- public HeartbeatSender(RaftPeer peer) {
+ private RaftPeer peer;
+ HeartbeatSender(RaftPeer peer) {
this.peer = peer;
}
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/LogStateMachine.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/LogStateMachine.java
index 1d8cbcb..45fa782 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/LogStateMachine.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/LogStateMachine.java
@@ -182,8 +182,8 @@ public class LogStateMachine extends BaseStateMachine {
private void checkInitialization() throws IOException {
if (this.log == null) {
- ServerState state = proxy.getImpl(groupId).getState();
- this.log = state.getLog();
+ ServerState serverState = proxy.getImpl(groupId).getState();
+ this.log = serverState.getLog();
}
}
@@ -196,15 +196,15 @@ public class LogStateMachine extends BaseStateMachine {
@Override
public long takeSnapshot() {
final TermIndex last;
- try(final AutoCloseableLock readLock = readLock()) {
+ try(AutoCloseableLock readLock = readLock()) {
last = getLastAppliedTermIndex();
}
final File snapshotFile = storage.getSnapshotFile(last.getTerm(),
last.getIndex());
LOG.info("Taking a snapshot to file {}", snapshotFile);
- try(final AutoCloseableLock readLock = readLock();
- final ObjectOutputStream out = new ObjectOutputStream(
+ try(AutoCloseableLock readLock = readLock();
+ ObjectOutputStream out = new ObjectOutputStream(
new BufferedOutputStream(new FileOutputStream(snapshotFile)))) {
out.writeLong(length);
out.writeLong(dataRecordsSize);
@@ -233,8 +233,8 @@ public class LogStateMachine extends BaseStateMachine {
}
final TermIndex last =
SimpleStateMachineStorage.getTermIndexFromSnapshotFile(snapshotFile);
- try(final AutoCloseableLock writeLock = writeLock();
- final ObjectInputStream in = new ObjectInputStream(
+ try(AutoCloseableLock writeLock = writeLock();
+ ObjectInputStream in = new ObjectInputStream(
new BufferedInputStream(new FileInputStream(snapshotFile)))) {
if (reload) {
reset();
@@ -331,8 +331,8 @@ public class LogStateMachine extends BaseStateMachine {
LogServiceProtos.GetExportInfoReplyProto.Builder exportBuilder =
LogServiceProtos.GetExportInfoReplyProto.newBuilder();
exportMap.values().stream().map(
- archivalInfo ->
exportBuilder.addInfo(LogServiceProtoUtil.toExportInfoProto(archivalInfo)))
- .collect(Collectors.toList());
+ archInfo ->
exportBuilder.addInfo(LogServiceProtoUtil.toExportInfoProto(archInfo)))
+ .collect(Collectors.toList());
return
CompletableFuture.completedFuture(Message.valueOf(exportBuilder.build().toByteString()));
}
@@ -343,8 +343,7 @@ public class LogStateMachine extends BaseStateMachine {
* @return reply message
*/
private CompletableFuture<Message>
- processGetStartIndexRequest(LogServiceRequestProto proto)
- {
+ processGetStartIndexRequest(LogServiceRequestProto proto) {
Throwable t = verifyState(State.OPEN);
long startIndex = log.getStartIndex();
@@ -358,8 +357,7 @@ public class LogStateMachine extends BaseStateMachine {
* @return reply message
*/
private CompletableFuture<Message>
- processGetLastCommittedIndexRequest(LogServiceRequestProto proto)
- {
+ processGetLastCommittedIndexRequest(LogServiceRequestProto proto) {
Throwable t = verifyState(State.OPEN);
long lastIndex = log.getLastCommittedIndex();
return CompletableFuture.completedFuture(Message
@@ -461,7 +459,7 @@ public class LogStateMachine extends BaseStateMachine {
Throwable t = verifyState(State.OPEN);
final List<Long> ids = new ArrayList<Long>();
if (t == null) {
- try (final AutoCloseableLock writeLock = writeLock()) {
+ try (AutoCloseableLock writeLock = writeLock()) {
List<byte[]> entries =
LogServiceProtoUtil.toListByteArray(proto.getDataList());
for (byte[] bb : entries) {
ids.add(this.length);
@@ -553,6 +551,7 @@ public class LogStateMachine extends BaseStateMachine {
case DELETED:
t = verifyState(State.CLOSED);
break;
+ default:
}
}
if(t != null) {
@@ -573,8 +572,8 @@ public class LogStateMachine extends BaseStateMachine {
}
private Throwable verifyState(State... states) {
- for (State state : states) {
- if (this.state == state) {
+ for (State st : states) {
+ if (this.state == st) {
return null;
}
}
@@ -744,9 +743,9 @@ public class LogStateMachine extends BaseStateMachine {
}
}
- private void sendChangeStateRequest(State state, boolean force) throws
IOException {
+ private void sendChangeStateRequest(State st, boolean force) throws
IOException {
getClient().send(
- () ->
LogServiceProtoUtil.toChangeStateRequestProto(LogName.of("Dummy"), state, force)
+ () ->
LogServiceProtoUtil.toChangeStateRequestProto(LogName.of("Dummy"), st, force)
.toByteString());
}
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/MetaStateMachine.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/MetaStateMachine.java
index e50b39c..fd20681 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/MetaStateMachine.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/MetaStateMachine.java
@@ -50,7 +50,6 @@ import
org.apache.ratis.logservice.proto.MetaServiceProtos.MetaSMRequestProto;
import org.apache.ratis.logservice.util.LogServiceProtoUtil;
import org.apache.ratis.logservice.util.MetaServiceProtoUtil;
import org.apache.ratis.metrics.RatisMetricRegistry;
-import org.apache.ratis.metrics.impl.RatisMetricRegistryImpl;
import org.apache.ratis.proto.RaftProtos;
import org.apache.ratis.protocol.*;
@@ -75,7 +74,7 @@ import org.slf4j.LoggerFactory;
public class MetaStateMachine extends BaseStateMachine {
- Logger LOG = LoggerFactory.getLogger(MetaStateMachine.class);
+ private static final Logger LOG =
LoggerFactory.getLogger(MetaStateMachine.class);
//Persisted map between log and RaftGroup
@@ -160,9 +159,8 @@ public class MetaStateMachine extends BaseStateMachine {
case PINGREQUEST:
LogServicePingRequestProto pingRequest = req.getPingRequest();
RaftPeer peer =
MetaServiceProtoUtil.toRaftPeer(pingRequest.getPeer());
- if (peers.contains(peer)) {
- //Do Nothing, that's just heartbeat
- } else {
+ //If Set<RaftPeer> contains peer then do nothing as that's
just heartbeat else add the peer to the set.
+ if (!peers.contains(peer)) {
peers.add(peer);
avail.add(new PeerGroups(peer));
heartbeatInfo.put(peer, System.currentTimeMillis());
@@ -215,7 +213,7 @@ public class MetaStateMachine extends BaseStateMachine {
e.printStackTrace();
}
}
- RaftProperties properties = new RaftProperties();
+
MetaServiceProtos.MetaServiceRequestProto req = null;
try {
req =
MetaServiceProtos.MetaServiceRequestProto.parseFrom(request.getContent());
@@ -257,8 +255,8 @@ public class MetaStateMachine extends BaseStateMachine {
MetaServiceProtoUtil.toDeleteLogExceptionReplyProto(
new
LogNotFoundException(logName.getName())).build().toByteString()));
} else {
- Collection<RaftPeer> peers = raftGroup.getPeers();
- peers.stream().forEach(peer -> {
+ Collection<RaftPeer> raftPeers = raftGroup.getPeers();
+ raftPeers.stream().forEach(peer -> {
RaftClient client = RaftClient.newBuilder()
.setProperties(properties)
.setClientId(ClientId.randomId())
@@ -291,28 +289,11 @@ public class MetaStateMachine extends BaseStateMachine {
MetaServiceProtoUtil.toDeleteLogReplyProto().toByteString()));
}
-// private CompletableFuture<Message>
processCloseLog(MetaServiceProtos.MetaServiceRequestProto
logServiceRequestProto) {
-// CloseLogRequestProto closeLog = logServiceRequestProto.getCloseLog();
-// LogName logName =
LogServiceProtoUtil.toLogName(closeLog.getLogName());
-// // Need to check whether the file is opened if opened close it.
-// // TODO need to handle exceptions while operating with files.
-// return CompletableFuture.completedFuture(Message
-//
.valueOf(CloseLogReplyProto.newBuilder().build().toByteString()));
-// }
-
-
-// private CompletableFuture<Message> processGetStateRequest(
-// MetaServiceProtos.MetaServiceRequestProto
logServiceRequestProto) {
-// MetaServiceProtos.GetStateRequestProto getState =
logServiceRequestProto.getGetState();
-// LogName logName =
LogServiceProtoUtil.toLogName(getState.getLogName());
-// return
CompletableFuture.completedFuture(Message.valueOf(LogServiceProtoUtil
-// .toGetStateReplyProto(true).toByteString()));
-// }
-//
+
private CompletableFuture<Message> processCreateLogRequest(
MetaServiceProtos.MetaServiceRequestProto logServiceRequestProto) {
LogName name;
- try (final AutoCloseableLock writeLock = writeLock()) {
+ try (AutoCloseableLock writeLock = writeLock()) {
CreateLogRequestProto createLog =
logServiceRequestProto.getCreateLog();
name = LogServiceProtoUtil.toLogName(createLog.getLogName());
if(map.containsKey(name)) {
@@ -328,14 +309,16 @@ public class MetaStateMachine extends BaseStateMachine {
.build()
.toByteString()));
} else {
- List<PeerGroups> peerGroup = IntStream.range(0, 3).mapToObj(i
-> avail.poll()).collect(Collectors.toList());
- List<RaftPeer> peers = peerGroup.stream().map(obj ->
obj.getPeer()).collect(Collectors.toList());
- RaftGroup raftGroup =
RaftGroup.valueOf(RaftGroupId.randomId(), peers);
+ List<PeerGroups> peerGroup = IntStream.range(0, 3).mapToObj(i
-> avail.poll())
+ .collect(Collectors.toList());
+ List<RaftPeer> peersFromGroup =
+ peerGroup.stream().map(obj ->
obj.getPeer()).collect(Collectors.toList());
+ RaftGroup raftGroup =
RaftGroup.valueOf(RaftGroupId.randomId(), peersFromGroup);
peerGroup.stream().forEach(pg -> {
pg.getGroups().add(raftGroup);
avail.add(pg);
});
- peers.forEach(i -> {
+ peersFromGroup.forEach(i -> {
RaftClient client =
RaftClient.newBuilder().setProperties(properties)
.setRaftGroup(RaftGroup.valueOf(logServerGroupId,
i)).build();
try {
@@ -399,10 +382,10 @@ public class MetaStateMachine extends BaseStateMachine {
class PeerGroups implements Comparable{
- RaftPeer peer;
- Set<RaftGroup> groups = new HashSet<>();
+ private RaftPeer peer;
+ private Set<RaftGroup> groups = new HashSet<>();
- public PeerGroups(RaftPeer peer) {
+ PeerGroups(RaftPeer peer) {
this.peer = peer;
}
@@ -433,9 +416,8 @@ public class MetaStateMachine extends BaseStateMachine {
if((now - heartbeatTimestamp) >
failureDetectionPeriod) {
// Close the logs serve by peer if any.
if (peerLogs.containsKey(raftPeer)) {
- LOG.warn("Closing all logs hosted by peer {}
because last heartbeat" +
- " ({}ms) exceeds the threshold
({}ms)", raftPeer, now - heartbeatTimestamp,
- failureDetectionPeriod);
+ LOG.warn("Closing all logs hosted by peer {}
because last heartbeat ({}ms) exceeds " +
+ "the threshold ({}ms)", raftPeer, now -
heartbeatTimestamp, failureDetectionPeriod);
peers.remove(raftPeer);
Set<LogName> logNames = peerLogs.get(raftPeer);
Iterator<LogName> itr = logNames.iterator();
@@ -453,7 +435,8 @@ public class MetaStateMachine extends BaseStateMachine {
toChangeStateRequestProto(logName, LogStream.State.CLOSED, true)
.toByteString());
LogServiceProtos.ChangeStateReplyProto
message =
-
LogServiceProtos.ChangeStateReplyProto.parseFrom(reply.getMessage().getContent());
+
LogServiceProtos.ChangeStateReplyProto.parseFrom(
+
reply.getMessage().getContent());
if(message.hasException()) {
throw new
IOException(message.getException().getErrorMsg());
}
@@ -493,13 +476,16 @@ public class MetaStateMachine extends BaseStateMachine {
// This method need to be used for testing only.
public boolean checkPeersAreSame() {
- if(!peers.equals(peerLogs.keySet())) return false;
- if(!peers.equals(heartbeatInfo.keySet())) return false;
+ if(!peers.equals(peerLogs.keySet()) ||
!peers.equals(heartbeatInfo.keySet())) {
+ return false;
+ }
Set<RaftPeer> availPeers = new HashSet<>();
avail.stream().forEach(peerGroups -> {
availPeers.add(peerGroups.getPeer());
});
- if(!peers.equals(availPeers)) return false;
+ if(!peers.equals(availPeers)) {
+ return false;
+ }
return true;
}
}
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/MetadataServer.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/MetadataServer.java
index 9c914ea..229471c 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/MetadataServer.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/MetadataServer.java
@@ -51,10 +51,14 @@ public class MetadataServer extends BaseServer {
private String id;
- StateMachine metaStateMachine;
+ private StateMachine metaStateMachine;
private LifeCycle lifeCycle;
+ public StateMachine getMetaStateMachine() {
+ return metaStateMachine;
+ }
+
public MetadataServer(ServerOpts opts) {
super(opts);
LOG.debug("Metadata Server options: {}", opts);
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/RaftLogReader.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/RaftLogReader.java
index 5aa6672..b92bedf 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/RaftLogReader.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/server/RaftLogReader.java
@@ -19,33 +19,29 @@ package org.apache.ratis.logservice.server;
import java.io.IOException;
-import org.apache.ratis.server.raftlog.RaftLogIOException;
-import org.apache.ratis.thirdparty.com.google.protobuf.ByteString;
-import
org.apache.ratis.thirdparty.com.google.protobuf.InvalidProtocolBufferException;
-
public interface RaftLogReader {
/**
* Positions this reader just before the current recordId. Use {@link
#next()} to get that
* element, but take care to check if a value is present using {@link
#hasNext()} first.
*/
- public void seek(long recordId) throws IOException;
+ void seek(long recordId) throws IOException;
/**
* Returns true if there is a log entry to read.
*/
- public boolean hasNext() throws IOException;
+ boolean hasNext() throws IOException;
/**
* Returns the next log entry. Ensure {@link #hasNext()} returns true before
* calling this method.
*/
- public byte[] next() throws IOException;
+ byte[] next() throws IOException;
/**
* Returns current raft index read
* @return
*/
- public long getCurrentRaftIndex();
+ long getCurrentRaftIndex();
}
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/CommandFactory.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/CommandFactory.java
index 319857d..660efa3 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/CommandFactory.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/CommandFactory.java
@@ -32,7 +32,7 @@ import
org.apache.ratis.logservice.shell.commands.ListLogsCommand;
import org.apache.ratis.logservice.shell.commands.PutToLogCommand;
import org.apache.ratis.logservice.shell.commands.ReadLogCommand;
-public class CommandFactory {
+public final class CommandFactory {
private static final Map<String,Command> KNOWN_COMMANDS = cacheCommands();
private static Map<String,Command> cacheCommands() {
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/LogServiceShell.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/LogServiceShell.java
index 90c7692..cd02fad 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/LogServiceShell.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/LogServiceShell.java
@@ -43,7 +43,7 @@ import com.beust.jcommander.JCommander;
* An interactive shell that can interact with a LogService instance.
*/
public class LogServiceShell {
- private static Logger LOG = LoggerFactory.getLogger(LogServiceShell.class);
+ private static final Logger LOG =
LoggerFactory.getLogger(LogServiceShell.class);
private static final String PROMPT = "logservice> ";
@@ -142,7 +142,7 @@ public class LogServiceShell {
.build()
.parse(args);
- try (LogServiceClient logServiceClient = new
LogServiceClient(opts.metaQuorum)) {
+ try (LogServiceClient logServiceClient = new
LogServiceClient(opts.getMetaQuorum())) {
LogServiceShell client = new LogServiceShell(terminal, lineReader,
logServiceClient);
client.run();
}
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/LogServiceShellOpts.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/LogServiceShellOpts.java
index f044937..8c77f18 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/LogServiceShellOpts.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/LogServiceShellOpts.java
@@ -21,5 +21,9 @@ import com.beust.jcommander.Parameter;
public class LogServiceShellOpts {
@Parameter(names = {"--meta-quorum", "-q"}, required = true)
- public String metaQuorum;
+ private String metaQuorum;
+
+ public String getMetaQuorum() {
+ return metaQuorum;
+ }
}
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/tool/VerificationTool.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/tool/VerificationTool.java
index aff80f1..5b76fb9 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/tool/VerificationTool.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/tool/VerificationTool.java
@@ -66,23 +66,48 @@ public class VerificationTool {
public static final Logger LOG =
LoggerFactory.getLogger(LogStateMachine.class);
- @Parameter(names = {"-q", "--metaQuorum"}, description = "Metadata Service
Quorum", required = true)
+ @Parameter(names = {"-q", "--metaQuorum"},
+ description = "Metadata Service Quorum",
+ required = true)
private String metaQuorum;
- @Parameter(names = {"-nl", "--numLogs"}, description = "Number of logs",
validateWith = NonZeroPositiveInteger.class)
+
+ @Parameter(names = {"-nl", "--numLogs"},
+ description = "Number of logs",
+ validateWith = NonZeroPositiveInteger.class)
private int numLogs = 10;
- @Parameter(names = {"-nr", "--numRecords"}, description = "Number of
records to write per log", validateWith = NonZeroPositiveInteger.class)
+
+ @Parameter(names = {"-nr", "--numRecords"},
+ description = "Number of records to write per log",
+ validateWith = NonZeroPositiveInteger.class)
private int numRecords = 1000;
- @Parameter(names = {"-w", "--write"}, description = "Write to the logs",
arity = 1)
+
+ @Parameter(names = {"-w", "--write"},
+ description = "Write to the logs",
+ arity = 1)
private boolean write = true;
- @Parameter(names = {"-r", "--read"}, description = "Read the logs", arity
= 1)
+
+ @Parameter(names = {"-r", "--read"},
+ description = "Read the logs",
+ arity = 1)
private boolean read = true;
- @Parameter(names = {"-l", "--logFrequency"}, description = "Print update
every N operations", validateWith = NonZeroPositiveInteger.class)
+
+ @Parameter(names = {"-l", "--logFrequency"},
+ description = "Print update every N operations",
+ validateWith = NonZeroPositiveInteger.class)
private int logFrequency = 50;
- @Parameter(names = {"-h", "--help"}, description = "Help", help = true)
+
+ @Parameter(names = {"-h", "--help"},
+ description = "Help",
+ help = true)
private boolean help = false;
- @Parameter(names = {"-s", "--size"}, description = "Size in bytes of each
value")
+
+ @Parameter(names = {"-s", "--size"},
+ description = "Size in bytes of each value")
private int recordSize = -1;
- @Parameter(names = {"-bs", "--batchSize"}, description = "Number of
records in a batch, a value of 0 disables batching", validateWith =
PositiveInteger.class)
+
+ @Parameter(names = {"-bs", "--batchSize"},
+ description = "Number of records in a batch, a value of 0 disables
batching",
+ validateWith = PositiveInteger.class)
private int batchSize = 0;
public static final String LOG_NAME_PREFIX = "testlog";
@@ -93,7 +118,6 @@ public class VerificationTool {
JCommander jc = JCommander.newBuilder()
.addObject(tool)
.build();
-
jc.parse(args);
if (tool.help) {
jc.usage();
@@ -175,13 +199,29 @@ public class VerificationTool {
LOG.info("All operations finished");
}
- static abstract class Operation implements Runnable {
+ abstract static class Operation implements Runnable {
static final byte DIVIDER_BYTE = '_';
- final LogName logName;
- final LogServiceClient client;
- final int numRecords;
- final int logFreq;
- final int valueSize;
+ private final LogName logName;
+ private final LogServiceClient client;
+ private final int numRecords;
+ private final int logFreq;
+ private final int valueSize;
+
+ public LogName getLogName() {
+ return logName;
+ }
+
+ public int getNumRecords() {
+ return numRecords;
+ }
+
+ public int getLogFreq() {
+ return logFreq;
+ }
+
+ public LogServiceClient getClient() {
+ return client;
+ }
Operation(LogName logName, LogServiceClient client, int numRecords, int
logFreq, int valueSize) {
this.logName = logName;
@@ -272,15 +312,15 @@ public class VerificationTool {
public void run() {
try {
LogWriter writer = getLogWriter();
- for (int i = 0; i < this.numRecords; i++) {
+ for (int i = 0; i < getNumRecords(); i++) {
String message = MESSAGE_PREFIX + i;
- if (i % logFreq == 0) {
- LOG.info(logName + " Writing " + message);
+ if (i % getLogFreq() == 0) {
+ LOG.info(getLogName() + " Writing " + message);
}
writer.write(createValue(message));
}
writer.close();
- LOG.info("{} entries written to {} successfully.", numRecords,
logName);
+ LOG.info("{} entries written to {} successfully.",
getNumRecords(), getLogName());
} catch (IOException e) {
throw new RuntimeException(e);
}
@@ -305,8 +345,8 @@ public class VerificationTool {
for(int j = 0; j < batchSize; j++) {
String message = MESSAGE_PREFIX + (i * batchSize + j);
messages.add(createValue(message));
- if((i * batchSize + j) % logFreq == 0) {
- LOG.info(logName + " batching write " + message);
+ if((i * batchSize + j) % getLogFreq() == 0) {
+ LOG.info(getLogName() + " batching write " +
message);
}
}
try {
@@ -317,13 +357,13 @@ public class VerificationTool {
}
// Catch the last bit that didn't evenly fit into the batch
sizes
- if (numRecords % batchSize != 0) {
+ if (getNumRecords() % batchSize != 0) {
List<ByteBuffer> lastBatch = new ArrayList<>();
- for (int i = numBatches * batchSize; i < numRecords; i++) {
+ for (int i = numBatches * batchSize; i < getNumRecords();
i++) {
String message = MESSAGE_PREFIX + i;
lastBatch.add(createValue(message));
}
- LOG.info(logName + " writing last mini-batch of " +
lastBatch.size() + " records");
+ LOG.info(getLogName() + " writing last mini-batch of " +
lastBatch.size() + " records");
try {
writer.write(lastBatch);
} catch (IOException e) {
@@ -331,7 +371,7 @@ public class VerificationTool {
}
}
LOG.info("{} entries written in batches to {} successfully.",
- numRecords, logName);
+ getNumRecords(), getLogName());
} catch (IOException e) {
throw new RuntimeException(e);
}
@@ -345,19 +385,19 @@ public class VerificationTool {
public void run() {
try {
- LogStream logStream = this.client.getLog(logName);
+ LogStream logStream = getClient().getLog(getLogName());
LogReader reader = logStream.createReader();
long size = logStream.getLength();
- if(size != this.numRecords) {
+ if(size != getNumRecords()) {
LOG.error("There is mismatch is number of records.
Expected Records: "+
- this.numRecords +", Actual Records: " + size);
+ getNumRecords() +", Actual Records: " + size);
System.exit(-1);
}
for (int i = 0; i < size; i++) {
ByteBuffer buffer = reader.readNext();
String message = parseValue(buffer);
- if (i % logFreq == 0) {
- LOG.info(logName + " Read " + message);
+ if (i % getLogFreq() == 0) {
+ LOG.info(getLogName() + " Read " + message);
}
if(!message.equals(MESSAGE_PREFIX + i)) {
LOG.error("Message is not correct. Expected:
"+(MESSAGE_PREFIX + i)
@@ -365,7 +405,7 @@ public class VerificationTool {
System.exit(-1);
}
}
- LOG.info("{} log entries read from log {} successfully.",
numRecords, logName);
+ LOG.info("{} log entries read from log {} successfully.",
getNumRecords(), getLogName());
reader.close();
} catch (IOException e) {
throw new RuntimeException(e);
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/util/LogServiceUtils.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/util/LogServiceUtils.java
index f5c6d01..723a0e0 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/util/LogServiceUtils.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/util/LogServiceUtils.java
@@ -29,7 +29,9 @@ import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-public class LogServiceUtils {
+public final class LogServiceUtils {
+ private LogServiceUtils() {
+ }
public static Set<RaftPeer> getPeersFromIds(String identity) {
return Stream.of(identity.split(",")).map(elem ->
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/util/MetaServiceProtoUtil.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/util/MetaServiceProtoUtil.java
index 8384d23..bad1c8d 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/util/MetaServiceProtoUtil.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/util/MetaServiceProtoUtil.java
@@ -24,7 +24,6 @@ import org.apache.ratis.logservice.api.LogName;
import org.apache.ratis.logservice.proto.LogServiceProtos;
import org.apache.ratis.logservice.proto.MetaServiceProtos;
import org.apache.ratis.logservice.proto.MetaServiceProtos.*;
-import org.apache.ratis.proto.RaftProtos;
import org.apache.ratis.protocol.*;
import org.apache.ratis.util.ProtoUtils;
import org.apache.ratis.util.ReflectionUtils;
@@ -37,7 +36,9 @@ import java.util.stream.Collectors;
import static
org.apache.ratis.logservice.util.LogServiceProtoUtil.toLogNameProto;
-public class MetaServiceProtoUtil {
+public final class MetaServiceProtoUtil {
+ private MetaServiceProtoUtil() {
+ }
public static RaftPeerProto toRaftPeerProto(RaftPeer peer) {
RaftPeerProto.Builder builder = RaftPeerProto.newBuilder()
@@ -189,7 +190,7 @@ public class MetaServiceProtoUtil {
static Iterable<RaftPeerProto> toRaftPeerProtos(
final Collection<RaftPeer> peers) {
return () -> new Iterator<RaftPeerProto>() {
- final Iterator<RaftPeer> i = peers.iterator();
+ private final Iterator<RaftPeer> i = peers.iterator();
@Override
public boolean hasNext() {
diff --git
a/ratis-logservice/src/test/java/org/apache/ratis/logservice/server/TestMetaServer.java
b/ratis-logservice/src/test/java/org/apache/ratis/logservice/server/TestMetaServer.java
index e30a8c4..acb4225 100644
---
a/ratis-logservice/src/test/java/org/apache/ratis/logservice/server/TestMetaServer.java
+++
b/ratis-logservice/src/test/java/org/apache/ratis/logservice/server/TestMetaServer.java
@@ -112,11 +112,11 @@ public class TestMetaServer {
LogStream logStream1 =
client.createLog(LogName.of("testCloseLogOnNodeFailure"+i));
assertNotNull(logStream1);
}
-
assertTrue(((MetaStateMachine)cluster.getMasters().get(0).metaStateMachine).checkPeersAreSame());
+
assertTrue(((MetaStateMachine)cluster.getMasters().get(0).getMetaStateMachine()).checkPeersAreSame());
workers.get(0).close();
peerClosed = true;
Thread.sleep(90000);
-
assertTrue(((MetaStateMachine)cluster.getMasters().get(0).metaStateMachine).checkPeersAreSame());
+
assertTrue(((MetaStateMachine)cluster.getMasters().get(0).getMetaStateMachine()).checkPeersAreSame());
for(int i = 0; i < 5; i++) {
LogStream logStream2 =
client.getLog(LogName.of("testCloseLogOnNodeFailure"+i));
assertNotNull(logStream2);