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/03/10 00:33:09 UTC
incubator-ratis git commit: RATIS-37. Change RaftServerConfigKeys to
use SizeInBytes and TimeDuration. Contributed by Tsz Wo Nicholas Sze.
Repository: incubator-ratis
Updated Branches:
refs/heads/master 615e76724 -> 6a755e66f
RATIS-37. Change RaftServerConfigKeys to use SizeInBytes and TimeDuration. 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/6a755e66
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ratis/tree/6a755e66
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ratis/diff/6a755e66
Branch: refs/heads/master
Commit: 6a755e66f89a8e100403cb6af5eb08b9ead3c324
Parents: 615e767
Author: Jing Zhao <ji...@apache.org>
Authored: Thu Mar 9 16:33:02 2017 -0800
Committer: Jing Zhao <ji...@apache.org>
Committed: Thu Mar 9 16:33:02 2017 -0800
----------------------------------------------------------------------
.../org/apache/ratis/util/TimeDuration.java | 4 +
.../java/org/apache/ratis/TestBatchAppend.java | 9 +-
.../org/apache/ratis/TestRestartRaftPeer.java | 5 +-
.../ratis/server/RaftServerConfigKeys.java | 155 +++++++++----------
.../apache/ratis/server/impl/LeaderState.java | 13 +-
.../apache/ratis/server/impl/LogAppender.java | 9 +-
.../ratis/server/impl/RaftServerImpl.java | 5 +-
.../apache/ratis/server/impl/ServerState.java | 2 +-
.../ratis/server/impl/StateMachineUpdater.java | 4 +-
.../ratis/server/storage/LogOutputStream.java | 6 +-
.../ratis/server/storage/RaftLogWorker.java | 2 +-
.../ratis/server/storage/RaftStorage.java | 2 +-
.../ratis/server/storage/SegmentedRaftLog.java | 2 +-
.../java/org/apache/ratis/MiniRaftCluster.java | 8 +-
.../java/org/apache/ratis/RaftTestUtil.java | 26 ++--
.../impl/RaftReconfigurationBaseTest.java | 2 +-
.../simulation/SimulatedRequestReply.java | 7 +-
.../TestNotLeaderExceptionWithSimulation.java | 3 -
.../server/storage/TestRaftLogReadWrite.java | 12 +-
.../server/storage/TestRaftLogSegment.java | 39 +++--
.../ratis/server/storage/TestRaftStorage.java | 3 +-
.../server/storage/TestSegmentedRaftLog.java | 10 +-
.../statemachine/RaftSnapshotBaseTest.java | 4 +-
.../ratis/statemachine/TestStateMachine.java | 2 +-
24 files changed, 160 insertions(+), 174 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-common/src/main/java/org/apache/ratis/util/TimeDuration.java
----------------------------------------------------------------------
diff --git a/ratis-common/src/main/java/org/apache/ratis/util/TimeDuration.java b/ratis-common/src/main/java/org/apache/ratis/util/TimeDuration.java
index d57c115..8a3dc18 100644
--- a/ratis-common/src/main/java/org/apache/ratis/util/TimeDuration.java
+++ b/ratis-common/src/main/java/org/apache/ratis/util/TimeDuration.java
@@ -111,6 +111,10 @@ public class TimeDuration implements Comparable<TimeDuration> {
return targetUnit.convert(duration, unit);
}
+ public int toInt(TimeUnit targetUnit) {
+ return Math.toIntExact(toLong(targetUnit));
+ }
+
public boolean isNegative() {
return duration < 0;
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-examples/src/test/java/org/apache/ratis/TestBatchAppend.java
----------------------------------------------------------------------
diff --git a/ratis-examples/src/test/java/org/apache/ratis/TestBatchAppend.java b/ratis-examples/src/test/java/org/apache/ratis/TestBatchAppend.java
index c9ee721..cc69984 100644
--- a/ratis-examples/src/test/java/org/apache/ratis/TestBatchAppend.java
+++ b/ratis-examples/src/test/java/org/apache/ratis/TestBatchAppend.java
@@ -21,6 +21,7 @@ import org.apache.log4j.Level;
import org.apache.ratis.RaftTestUtil.SimpleMessage;
import org.apache.ratis.client.RaftClient;
import org.apache.ratis.conf.RaftProperties;
+import org.apache.ratis.util.SizeInBytes;
import org.apache.ratis.examples.RaftExamplesTestUtil;
import org.apache.ratis.protocol.RaftPeerId;
import org.apache.ratis.server.RaftServerConfigKeys;
@@ -48,8 +49,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static org.apache.ratis.server.RaftServerConfigKeys.KB;
-
/**
* Enable raft.server.log.appender.batch.enabled and test LogAppender
*/
@@ -67,11 +66,11 @@ public class TestBatchAppend {
RaftProperties prop = new RaftProperties();
prop.setClass(MiniRaftCluster.STATEMACHINE_CLASS_KEY,
SimpleStateMachine4Testing.class, StateMachine.class);
- RaftServerConfigKeys.Log.setSegmentSizeMax(prop::setLong, 8*KB);
+ RaftServerConfigKeys.Log.setSegmentSizeMax(prop, SizeInBytes.valueOf("8KB"));
// enable batch appending
- RaftServerConfigKeys.Log.Appender.setBatchEnabled(prop::setBoolean, true);
+ RaftServerConfigKeys.Log.Appender.setBatchEnabled(prop, true);
// set batch appending buffer size to 4KB
- RaftServerConfigKeys.Log.Appender.setBufferCapacity(prop::setInt, 4*KB);
+ RaftServerConfigKeys.Log.Appender.setBufferCapacity(prop, SizeInBytes.valueOf("4KB"));
return RaftExamplesTestUtil.getMiniRaftClusters(prop, 3);
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-examples/src/test/java/org/apache/ratis/TestRestartRaftPeer.java
----------------------------------------------------------------------
diff --git a/ratis-examples/src/test/java/org/apache/ratis/TestRestartRaftPeer.java b/ratis-examples/src/test/java/org/apache/ratis/TestRestartRaftPeer.java
index a5b7d69..34aec44 100644
--- a/ratis-examples/src/test/java/org/apache/ratis/TestRestartRaftPeer.java
+++ b/ratis-examples/src/test/java/org/apache/ratis/TestRestartRaftPeer.java
@@ -21,6 +21,7 @@ import org.apache.log4j.Level;
import org.apache.ratis.RaftTestUtil.SimpleMessage;
import org.apache.ratis.client.RaftClient;
import org.apache.ratis.conf.RaftProperties;
+import org.apache.ratis.util.SizeInBytes;
import org.apache.ratis.examples.RaftExamplesTestUtil;
import org.apache.ratis.protocol.RaftPeerId;
import org.apache.ratis.server.RaftServerConfigKeys;
@@ -43,8 +44,6 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
-import static org.apache.ratis.server.RaftServerConfigKeys.KB;
-
/**
* Test restarting raft peers.
*/
@@ -63,7 +62,7 @@ public class TestRestartRaftPeer {
RaftProperties prop = new RaftProperties();
prop.setClass(MiniRaftCluster.STATEMACHINE_CLASS_KEY,
SimpleStateMachine4Testing.class, StateMachine.class);
- RaftServerConfigKeys.Log.setSegmentSizeMax(prop::setLong, 8*KB);
+ RaftServerConfigKeys.Log.setSegmentSizeMax(prop, SizeInBytes.valueOf("8KB"));
return RaftExamplesTestUtil.getMiniRaftClusters(prop, 3);
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java b/ratis-server/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java
index 74c56a5..66e06e0 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java
@@ -17,25 +17,24 @@
*/
package org.apache.ratis.server;
-import org.apache.ratis.conf.ConfUtils;
+import org.apache.ratis.conf.RaftProperties;
+import org.apache.ratis.util.SizeInBytes;
+import org.apache.ratis.util.TimeDuration;
-import java.util.function.BiConsumer;
-import java.util.function.BiFunction;
+import java.util.concurrent.TimeUnit;
-import static org.apache.ratis.conf.ConfUtils.requireMin;
+import static org.apache.ratis.conf.ConfUtils.*;
public interface RaftServerConfigKeys {
String PREFIX = "raft.server";
- int KB = 1024;
- int MB = 1024*KB;
String STORAGE_DIR_KEY = PREFIX + ".storage.dir";
String STORAGE_DIR_DEFAULT = "file:///tmp/raft-server/";
- static String storageDir(BiFunction<String, String, String> getTrimmed) {
- return ConfUtils.get(getTrimmed, STORAGE_DIR_KEY, STORAGE_DIR_DEFAULT);
+ static String storageDir(RaftProperties properties) {
+ return get(properties::getTrimmed, STORAGE_DIR_KEY, STORAGE_DIR_DEFAULT);
}
- static void setStorageDir(BiConsumer<String, String> setString, String storageDir) {
- ConfUtils.set(setString, STORAGE_DIR_KEY, storageDir);
+ static void setStorageDir(RaftProperties properties, String storageDir) {
+ set(properties::set, STORAGE_DIR_KEY, storageDir);
}
/**
@@ -45,12 +44,12 @@ public interface RaftServerConfigKeys {
*/
String STAGING_CATCHUP_GAP_KEY = PREFIX + ".staging.catchup.gap";
int STAGING_CATCHUP_GAP_DEFAULT = 1000; // increase this number when write throughput is high
- static int stagingCatchupGap(BiFunction<String, Integer, Integer> getInt) {
- return ConfUtils.getInt(getInt,
+ static int stagingCatchupGap(RaftProperties properties) {
+ return getInt(properties::getInt,
STAGING_CATCHUP_GAP_KEY, STAGING_CATCHUP_GAP_DEFAULT, requireMin(0));
}
- static void setStagingCatchupGap(BiConsumer<String, Integer> setInt, int stagingCatchupGap) {
- ConfUtils.setInt(setInt, STAGING_CATCHUP_GAP_KEY, stagingCatchupGap);
+ static void setStagingCatchupGap(RaftProperties properties, int stagingCatchupGap) {
+ setInt(properties::setInt, STAGING_CATCHUP_GAP_KEY, stagingCatchupGap);
}
interface Log {
@@ -58,48 +57,47 @@ public interface RaftServerConfigKeys {
String USE_MEMORY_KEY = PREFIX + ".use.memory";
boolean USE_MEMORY_DEFAULT = false;
- static boolean useMemory(BiFunction<String, Boolean, Boolean> getBool) {
- return ConfUtils.getBoolean(getBool, USE_MEMORY_KEY, USE_MEMORY_DEFAULT);
+ static boolean useMemory(RaftProperties properties) {
+ return getBoolean(properties::getBoolean, USE_MEMORY_KEY, USE_MEMORY_DEFAULT);
}
- static void setUseMemory(BiConsumer<String, Boolean> setLong, boolean useMemory) {
- ConfUtils.setBoolean(setLong, USE_MEMORY_KEY, useMemory);
+ static void setUseMemory(RaftProperties properties, boolean useMemory) {
+ setBoolean(properties::setBoolean, USE_MEMORY_KEY, useMemory);
}
String SEGMENT_SIZE_MAX_KEY = PREFIX + ".segment.size.max";
- long SEGMENT_SIZE_MAX_DEFAULT = 8*MB;
- static long segmentSizeMax(BiFunction<String, Long, Long> getLong) {
- return ConfUtils.getLong(getLong,
- SEGMENT_SIZE_MAX_KEY, SEGMENT_SIZE_MAX_DEFAULT, requireMin(0L));
+ SizeInBytes SEGMENT_SIZE_MAX_DEFAULT = SizeInBytes.valueOf("8MB");
+ static SizeInBytes segmentSizeMax(RaftProperties properties) {
+ return getSizeInBytes(properties::getSizeInBytes,
+ SEGMENT_SIZE_MAX_KEY, SEGMENT_SIZE_MAX_DEFAULT);
}
- static void setSegmentSizeMax(
- BiConsumer<String, Long> setLong, long segmentSizeMax) {
- ConfUtils.setLong(setLong, SEGMENT_SIZE_MAX_KEY, segmentSizeMax);
+ static void setSegmentSizeMax(RaftProperties properties, SizeInBytes segmentSizeMax) {
+ setSizeInBytes(properties::set, SEGMENT_SIZE_MAX_KEY, segmentSizeMax);
}
String PREALLOCATED_SIZE_KEY = PREFIX + ".preallocated.size";
- int PREALLOCATED_SIZE_DEFAULT = 4*MB;
- static int preallocatedSize(BiFunction<String, Integer, Integer> getInt) {
- return ConfUtils.getInt(getInt,
- PREALLOCATED_SIZE_KEY, PREALLOCATED_SIZE_DEFAULT, requireMin(0));
+ SizeInBytes PREALLOCATED_SIZE_DEFAULT = SizeInBytes.valueOf("4MB");
+ static SizeInBytes preallocatedSize(RaftProperties properties) {
+ return getSizeInBytes(properties::getSizeInBytes,
+ PREALLOCATED_SIZE_KEY, PREALLOCATED_SIZE_DEFAULT);
}
- static void setPreallocatedSize(BiConsumer<String, Integer> setInt, int preallocatedSize) {
- ConfUtils.setInt(setInt, PREALLOCATED_SIZE_KEY, preallocatedSize);
+ static void setPreallocatedSize(RaftProperties properties, SizeInBytes preallocatedSize) {
+ setSizeInBytes(properties::set, PREALLOCATED_SIZE_KEY, preallocatedSize);
}
String WRITE_BUFFER_SIZE_KEY = PREFIX + ".write.buffer.size";
- int WRITE_BUFFER_SIZE_DEFAULT = 64*KB;
- static int writeBufferSize(BiFunction<String, Integer, Integer> getInt) {
- return ConfUtils.getInt(getInt,
- WRITE_BUFFER_SIZE_KEY, WRITE_BUFFER_SIZE_DEFAULT, requireMin(0));
+ SizeInBytes WRITE_BUFFER_SIZE_DEFAULT =SizeInBytes.valueOf("64KB");
+ static SizeInBytes writeBufferSize(RaftProperties properties) {
+ return getSizeInBytes(properties::getSizeInBytes,
+ WRITE_BUFFER_SIZE_KEY, WRITE_BUFFER_SIZE_DEFAULT);
}
- static void setWriteBufferSize(BiConsumer<String, Integer> setInt, int writeBufferSize) {
- ConfUtils.setInt(setInt, WRITE_BUFFER_SIZE_KEY, writeBufferSize);
+ static void setWriteBufferSize(RaftProperties properties, SizeInBytes writeBufferSize) {
+ setSizeInBytes(properties::set, WRITE_BUFFER_SIZE_KEY, writeBufferSize);
}
String FORCE_SYNC_NUM_KEY = PREFIX + ".force.sync.num";
int FORCE_SYNC_NUM_DEFAULT = 128;
- static int forceSyncNum(BiFunction<String, Integer, Integer> getInt) {
- return ConfUtils.getInt(getInt,
+ static int forceSyncNum(RaftProperties properties) {
+ return getInt(properties::getInt,
FORCE_SYNC_NUM_KEY, FORCE_SYNC_NUM_DEFAULT, requireMin(0));
}
@@ -107,30 +105,29 @@ public interface RaftServerConfigKeys {
String PREFIX = Log.PREFIX + ".appender";
String BUFFER_CAPACITY_KEY = PREFIX + ".buffer.capacity";
- int BUFFER_CAPACITY_DEFAULT = 4*MB;
- static int bufferCapacity(BiFunction<String, Integer, Integer> getInt) {
- return ConfUtils.getInt(getInt,
- BUFFER_CAPACITY_KEY, BUFFER_CAPACITY_DEFAULT, requireMin(0));
+ SizeInBytes BUFFER_CAPACITY_DEFAULT =SizeInBytes.valueOf("4MB");
+ static SizeInBytes bufferCapacity(RaftProperties properties) {
+ return getSizeInBytes(properties::getSizeInBytes,
+ BUFFER_CAPACITY_KEY, BUFFER_CAPACITY_DEFAULT);
}
- static void setBufferCapacity(BiConsumer<String, Integer> setInt, int bufferCapacity) {
- ConfUtils.setInt(setInt, BUFFER_CAPACITY_KEY, bufferCapacity);
+ static void setBufferCapacity(RaftProperties properties, SizeInBytes bufferCapacity) {
+ setSizeInBytes(properties::set, BUFFER_CAPACITY_KEY, bufferCapacity);
}
String BATCH_ENABLED_KEY = PREFIX + ".batch.enabled";
boolean BATCH_ENABLED_DEFAULT = false;
- static boolean batchEnabled(BiFunction<String, Boolean, Boolean> getBool) {
- return ConfUtils.getBoolean(getBool, BATCH_ENABLED_KEY, BATCH_ENABLED_DEFAULT);
+ static boolean batchEnabled(RaftProperties properties) {
+ return getBoolean(properties::getBoolean, BATCH_ENABLED_KEY, BATCH_ENABLED_DEFAULT);
}
- static void setBatchEnabled(
- BiConsumer<String, Boolean> setLong, boolean batchEnabled) {
- ConfUtils.setBoolean(setLong, BATCH_ENABLED_KEY, batchEnabled);
+ static void setBatchEnabled(RaftProperties properties, boolean batchEnabled) {
+ setBoolean(properties::setBoolean, BATCH_ENABLED_KEY, batchEnabled);
}
String SNAPSHOT_CHUNK_SIZE_MAX_KEY = PREFIX + ".snapshot.chunk.size.max";
- int SNAPSHOT_CHUNK_SIZE_MAX_DEFAULT = 16*MB;
- static int snapshotChunkSizeMax(BiFunction<String, Integer, Integer> getInt) {
- return ConfUtils.getInt(getInt,
- SNAPSHOT_CHUNK_SIZE_MAX_KEY, SNAPSHOT_CHUNK_SIZE_MAX_DEFAULT, requireMin(0));
+ SizeInBytes SNAPSHOT_CHUNK_SIZE_MAX_DEFAULT =SizeInBytes.valueOf("16MB");
+ static SizeInBytes snapshotChunkSizeMax(RaftProperties properties) {
+ return getSizeInBytes(properties::getSizeInBytes,
+ SNAPSHOT_CHUNK_SIZE_MAX_KEY, SNAPSHOT_CHUNK_SIZE_MAX_DEFAULT);
}
}
}
@@ -142,25 +139,23 @@ public interface RaftServerConfigKeys {
String AUTO_TRIGGER_ENABLED_KEY = PREFIX + ".auto.trigger.enabled";
/** by default let the state machine to decide when to do checkpoint */
boolean AUTO_TRIGGER_ENABLED_DEFAULT = false;
- static boolean autoTriggerEnabled(BiFunction<String, Boolean, Boolean> getBool) {
- return ConfUtils.getBoolean(getBool,
+ static boolean autoTriggerEnabled(RaftProperties properties) {
+ return getBoolean(properties::getBoolean,
AUTO_TRIGGER_ENABLED_KEY, AUTO_TRIGGER_ENABLED_DEFAULT);
}
- static void setAutoTriggerEnabled(
- BiConsumer<String, Boolean> setLong, boolean autoTriggerThreshold) {
- ConfUtils.setBoolean(setLong, AUTO_TRIGGER_ENABLED_KEY, autoTriggerThreshold);
+ static void setAutoTriggerEnabled(RaftProperties properties, boolean autoTriggerThreshold) {
+ setBoolean(properties::setBoolean, AUTO_TRIGGER_ENABLED_KEY, autoTriggerThreshold);
}
/** log size limit (in number of log entries) that triggers the snapshot */
String AUTO_TRIGGER_THRESHOLD_KEY = PREFIX + ".auto.trigger.threshold";
long AUTO_TRIGGER_THRESHOLD_DEFAULT = 400000L;
- static long autoTriggerThreshold(BiFunction<String, Long, Long> getLong) {
- return ConfUtils.getLong(getLong,
+ static long autoTriggerThreshold(RaftProperties properties) {
+ return getLong(properties::getLong,
AUTO_TRIGGER_THRESHOLD_KEY, AUTO_TRIGGER_THRESHOLD_DEFAULT, requireMin(0L));
}
- static void setAutoTriggerThreshold(
- BiConsumer<String, Long> setLong, long autoTriggerThreshold) {
- ConfUtils.setLong(setLong, AUTO_TRIGGER_THRESHOLD_KEY, autoTriggerThreshold);
+ static void setAutoTriggerThreshold(RaftProperties properties, long autoTriggerThreshold) {
+ setLong(properties::setLong, AUTO_TRIGGER_THRESHOLD_KEY, autoTriggerThreshold);
}
}
@@ -168,29 +163,29 @@ public interface RaftServerConfigKeys {
interface Rpc {
String PREFIX = RaftServerConfigKeys.PREFIX + ".rpc";
- String TIMEOUT_MIN_MS_KEY = PREFIX + ".timeout.min.ms";
- int TIMEOUT_MIN_MS_DEFAULT = 150;
- static int timeoutMinMs(BiFunction<String, Integer, Integer> getInt) {
- return ConfUtils.getInt(getInt,
- TIMEOUT_MIN_MS_KEY, TIMEOUT_MIN_MS_DEFAULT, requireMin(0));
+ String TIMEOUT_MIN_KEY = PREFIX + ".timeout.min";
+ TimeDuration TIMEOUT_MIN_DEFAULT = TimeDuration.valueOf(150, TimeUnit.MILLISECONDS);
+ static TimeDuration timeoutMin(RaftProperties properties) {
+ return getTimeDuration(properties.getTimeDuration(TIMEOUT_MIN_DEFAULT.getUnit()),
+ TIMEOUT_MIN_KEY, TIMEOUT_MIN_DEFAULT);
}
- String TIMEOUT_MAX_MS_KEY = PREFIX + ".timeout.max.ms";
- int TIMEOUT_MAX_MS_DEFAULT = 300;
- static int timeoutMaxMs(BiFunction<String, Integer, Integer> getInt) {
- return ConfUtils.getInt(getInt,
- TIMEOUT_MAX_MS_KEY, TIMEOUT_MAX_MS_DEFAULT, requireMin(0));
+ String TIMEOUT_MAX_KEY = PREFIX + ".timeout.max";
+ TimeDuration TIMEOUT_MAX_DEFAULT = TimeDuration.valueOf(300, TimeUnit.MILLISECONDS);
+ static TimeDuration timeoutMax(RaftProperties properties) {
+ return getTimeDuration(properties.getTimeDuration(TIMEOUT_MAX_DEFAULT.getUnit()),
+ TIMEOUT_MAX_KEY, TIMEOUT_MAX_DEFAULT);
}
- String SLEEP_TIME_MS_KEY = PREFIX + ".sleep.time.ms";
- int SLEEP_TIME_MS_DEFAULT = 25;
- static int sleepTimeMs(BiFunction<String, Integer, Integer> getInt) {
- return ConfUtils.getInt(getInt,
- SLEEP_TIME_MS_KEY, SLEEP_TIME_MS_DEFAULT, requireMin(0));
+ String SLEEP_TIME_KEY = PREFIX + ".sleep.time";
+ TimeDuration SLEEP_TIME_DEFAULT = TimeDuration.valueOf(25, TimeUnit.MILLISECONDS);
+ static TimeDuration sleepTime(RaftProperties properties) {
+ return getTimeDuration(properties.getTimeDuration(SLEEP_TIME_DEFAULT.getUnit()),
+ SLEEP_TIME_KEY, SLEEP_TIME_DEFAULT);
}
}
static void main(String[] args) {
- ConfUtils.printAll(RaftServerConfigKeys.class);
+ printAll(RaftServerConfigKeys.class);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderState.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderState.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderState.java
index c5f0060..6f246d8 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderState.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderState.java
@@ -25,10 +25,7 @@ import org.apache.ratis.server.storage.RaftLog;
import org.apache.ratis.shaded.proto.RaftProtos.LeaderNoOp;
import org.apache.ratis.shaded.proto.RaftProtos.LogEntryProto;
import org.apache.ratis.statemachine.TransactionContext;
-import org.apache.ratis.util.CodeInjectionForTesting;
-import org.apache.ratis.util.Daemon;
-import org.apache.ratis.util.ProtoUtils;
-import org.apache.ratis.util.Timestamp;
+import org.apache.ratis.util.*;
import org.slf4j.Logger;
import java.io.IOException;
@@ -93,14 +90,14 @@ public class LeaderState {
private volatile boolean running = true;
private final int stagingCatchupGap;
- private final int syncInterval;
+ private final TimeDuration syncInterval;
private final long placeHolderIndex;
LeaderState(RaftServerImpl server, RaftProperties properties) {
this.server = server;
- stagingCatchupGap = RaftServerConfigKeys.stagingCatchupGap(properties::getInt);
- syncInterval = RaftServerConfigKeys.Rpc.sleepTimeMs(properties::getInt);
+ stagingCatchupGap = RaftServerConfigKeys.stagingCatchupGap(properties);
+ syncInterval = RaftServerConfigKeys.Rpc.sleepTime(properties);
final ServerState state = server.getState();
this.raftLog = state.getLog();
@@ -177,7 +174,7 @@ public class LeaderState {
return currentTerm;
}
- int getSyncInterval() {
+ TimeDuration getSyncInterval() {
return syncInterval;
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/main/java/org/apache/ratis/server/impl/LogAppender.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/LogAppender.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/LogAppender.java
index fdab93d..9dbe314 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/LogAppender.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/LogAppender.java
@@ -68,9 +68,10 @@ public class LogAppender extends Daemon {
this.raftLog = server.getState().getLog();
final RaftProperties properties = server.getProperties();
- this.maxBufferSize = RaftServerConfigKeys.Log.Appender.bufferCapacity(properties::getInt);
- this.batchSending = RaftServerConfigKeys.Log.Appender.batchEnabled(properties::getBoolean);
- this.snapshotChunkMaxSize = RaftServerConfigKeys.Log.Appender.snapshotChunkSizeMax(properties::getInt);
+ this.maxBufferSize = RaftServerConfigKeys.Log.Appender.bufferCapacity(properties).getSizeInt();
+ this.batchSending = RaftServerConfigKeys.Log.Appender.batchEnabled(properties);
+ this.snapshotChunkMaxSize = RaftServerConfigKeys.Log.Appender.snapshotChunkSizeMax(properties).getSizeInt();
+
this.buffer = new LogEntryBuffer();
this.leaderTerm = server.getState().getCurrentTerm();
}
@@ -209,7 +210,7 @@ public class LogAppender extends Daemon {
LOG.debug(this + ": failed to send appendEntries; retry " + retry++, ioe);
}
if (isAppenderRunning()) {
- Thread.sleep(leaderState.getSyncInterval());
+ leaderState.getSyncInterval().sleep();
}
}
return null;
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/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 98e37e5..e13a0ba 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
@@ -48,6 +48,7 @@ import java.util.List;
import java.util.OptionalLong;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
import static org.apache.ratis.shaded.proto.RaftProtos.AppendEntriesReplyProto.AppendResult.*;
import static org.apache.ratis.util.LifeCycle.State.*;
@@ -92,8 +93,8 @@ public class RaftServerImpl implements RaftServer {
RaftConfiguration raftConf, RaftProperties properties, Parameters parameters)
throws IOException {
this.lifeCycle = new LifeCycle(id);
- minTimeoutMs = RaftServerConfigKeys.Rpc.timeoutMinMs(properties::getInt);
- maxTimeoutMs = RaftServerConfigKeys.Rpc.timeoutMaxMs(properties::getInt);
+ minTimeoutMs = RaftServerConfigKeys.Rpc.timeoutMin(properties).toInt(TimeUnit.MILLISECONDS);
+ maxTimeoutMs = RaftServerConfigKeys.Rpc.timeoutMax(properties).toInt(TimeUnit.MILLISECONDS);
Preconditions.checkArgument(maxTimeoutMs > minTimeoutMs,
"max timeout: %s, min timeout: %s", maxTimeoutMs, minTimeoutMs);
this.properties = properties;
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/main/java/org/apache/ratis/server/impl/ServerState.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/ServerState.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/ServerState.java
index 4ad099d..2e0ea71 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/ServerState.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/ServerState.java
@@ -124,7 +124,7 @@ public class ServerState implements Closeable {
private RaftLog initLog(RaftPeerId id, RaftProperties prop,
RaftServerImpl server, long lastIndexInSnapshot) throws IOException {
final RaftLog log;
- if (RaftServerConfigKeys.Log.useMemory(prop::getBoolean)) {
+ if (RaftServerConfigKeys.Log.useMemory(prop)) {
log = new MemoryRaftLog(id);
} else {
log = new SegmentedRaftLog(id, server, this.storage,
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/main/java/org/apache/ratis/server/impl/StateMachineUpdater.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/StateMachineUpdater.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/StateMachineUpdater.java
index fb153cb..3341549 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/StateMachineUpdater.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/StateMachineUpdater.java
@@ -80,8 +80,8 @@ class StateMachineUpdater implements Runnable {
this.lastAppliedIndex = lastAppliedIndex;
lastSnapshotIndex = lastAppliedIndex;
- autoSnapshotEnabled = RaftServerConfigKeys.Snapshot.autoTriggerEnabled(properties::getBoolean);
- autoSnapshotThreshold = RaftServerConfigKeys.Snapshot.autoTriggerThreshold(properties::getLong);
+ autoSnapshotEnabled = RaftServerConfigKeys.Snapshot.autoTriggerEnabled(properties);
+ autoSnapshotThreshold = RaftServerConfigKeys.Snapshot.autoTriggerThreshold(properties);
updater = new Daemon(this);
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/main/java/org/apache/ratis/server/storage/LogOutputStream.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/storage/LogOutputStream.java b/ratis-server/src/main/java/org/apache/ratis/server/storage/LogOutputStream.java
index 6a0f5da..8563549 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/storage/LogOutputStream.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/storage/LogOutputStream.java
@@ -61,14 +61,14 @@ public class LogOutputStream implements Closeable {
throws IOException {
this.file = file;
this.checksum = new PureJavaCrc32C();
- this.segmentMaxSize = RaftServerConfigKeys.Log.segmentSizeMax(properties::getLong);
- this.preallocatedSize = RaftServerConfigKeys.Log.preallocatedSize(properties::getInt);
+ this.segmentMaxSize = RaftServerConfigKeys.Log.segmentSizeMax(properties).getSize();
+ this.preallocatedSize = RaftServerConfigKeys.Log.preallocatedSize(properties).getSize();
RandomAccessFile rp = new RandomAccessFile(file, "rw");
fc = rp.getChannel();
fc.position(fc.size());
preallocatedPos = fc.size();
- final int bufferSize = RaftServerConfigKeys.Log.writeBufferSize(properties::getInt);
+ final int bufferSize = RaftServerConfigKeys.Log.writeBufferSize(properties).getSizeInt();
out = new BufferedWriteChannel(fc, bufferSize);
if (!append) {
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftLogWorker.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftLogWorker.java b/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftLogWorker.java
index a78d117..0d724e8 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftLogWorker.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftLogWorker.java
@@ -76,7 +76,7 @@ class RaftLogWorker implements Runnable {
this.raftServer = raftServer;
this.storage = storage;
this.properties = properties;
- this.forceSyncNum = RaftServerConfigKeys.Log.forceSyncNum(properties::getInt);
+ this.forceSyncNum = RaftServerConfigKeys.Log.forceSyncNum(properties);
workerThread = new Thread(this,
getClass().getSimpleName() + " for " + storage);
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftStorage.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftStorage.java b/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftStorage.java
index 2b73b0a..c86357d 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftStorage.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftStorage.java
@@ -44,7 +44,7 @@ public class RaftStorage implements Closeable {
public RaftStorage(RaftProperties prop, RaftServerConstants.StartupOption option)
throws IOException {
- final String dir = RaftServerConfigKeys.storageDir(prop::getTrimmed);
+ final String dir = RaftServerConfigKeys.storageDir(prop);
storageDir = new RaftStorageDirectory(
new File(FileUtils.stringAsURI(dir).getPath()));
if (option == RaftServerConstants.StartupOption.FORMAT) {
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/main/java/org/apache/ratis/server/storage/SegmentedRaftLog.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/storage/SegmentedRaftLog.java b/ratis-server/src/main/java/org/apache/ratis/server/storage/SegmentedRaftLog.java
index 90b5f8d..c31665f 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/storage/SegmentedRaftLog.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/storage/SegmentedRaftLog.java
@@ -104,7 +104,7 @@ public class SegmentedRaftLog extends RaftLog {
throws IOException {
super(selfId);
this.storage = storage;
- this.segmentMaxSize = RaftServerConfigKeys.Log.segmentSizeMax(properties::getLong);
+ this.segmentMaxSize = RaftServerConfigKeys.Log.segmentSizeMax(properties).getSize();
cache = new RaftLogCache();
fileLogWorker = new RaftLogWorker(server, storage, properties);
lastCommitted.set(lastIndexInSnapshot);
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java b/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java
index 0f87da1..0944b87 100644
--- a/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java
+++ b/ratis-server/src/test/java/org/apache/ratis/MiniRaftCluster.java
@@ -44,6 +44,7 @@ import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
@@ -197,7 +198,7 @@ public abstract class MiniRaftCluster {
}
public int getMaxTimeout() {
- return RaftServerConfigKeys.Rpc.timeoutMaxMs(properties::getInt);
+ return RaftServerConfigKeys.Rpc.timeoutMax(properties).toInt(TimeUnit.MILLISECONDS);
}
public RaftConfiguration getConf() {
@@ -211,7 +212,7 @@ public abstract class MiniRaftCluster {
formatDir(dirStr);
}
final RaftProperties prop = new RaftProperties(properties);
- RaftServerConfigKeys.setStorageDir(prop::set, dirStr);
+ RaftServerConfigKeys.setStorageDir(prop, dirStr);
final StateMachine stateMachine = getStateMachine4Test(properties);
return newRaftServer(id, stateMachine, conf, prop);
} catch (IOException e) {
@@ -429,7 +430,8 @@ public abstract class MiniRaftCluster {
// least ELECTION_TIMEOUT_MIN. In this way when the target leader request a
// vote, all non-leader servers can grant the vote.
// Disable the target leader server RPC so that it can request a vote.
- blockQueueAndSetDelay(leaderId, RaftServerConfigKeys.Rpc.TIMEOUT_MIN_MS_DEFAULT);
+ blockQueueAndSetDelay(leaderId,
+ RaftServerConfigKeys.Rpc.TIMEOUT_MIN_DEFAULT.toInt(TimeUnit.MILLISECONDS));
// Reopen queues so that the vote can make progress.
blockQueueAndSetDelay(leaderId, 0);
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/test/java/org/apache/ratis/RaftTestUtil.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/RaftTestUtil.java b/ratis-server/src/test/java/org/apache/ratis/RaftTestUtil.java
index 3ada880..5166249 100644
--- a/ratis-server/src/test/java/org/apache/ratis/RaftTestUtil.java
+++ b/ratis-server/src/test/java/org/apache/ratis/RaftTestUtil.java
@@ -17,20 +17,9 @@
*/
package org.apache.ratis;
-import static org.apache.ratis.util.ProtoUtils.toByteString;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.Charset;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.function.BooleanSupplier;
-import java.util.function.IntSupplier;
-
+import com.google.common.base.Preconditions;
import org.apache.commons.lang.RandomStringUtils;
import org.apache.ratis.protocol.Message;
-import org.apache.ratis.protocol.RaftPeer;
import org.apache.ratis.protocol.RaftPeerId;
import org.apache.ratis.server.RaftServerConfigKeys;
import org.apache.ratis.server.impl.BlockRequestHandlingInjection;
@@ -44,7 +33,16 @@ import org.junit.Assert;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Preconditions;
+import java.io.File;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.function.BooleanSupplier;
+import java.util.function.IntSupplier;
+
+import static org.apache.ratis.util.ProtoUtils.toByteString;
public class RaftTestUtil {
static final Logger LOG = LoggerFactory.getLogger(RaftTestUtil.class);
@@ -230,7 +228,7 @@ public class RaftTestUtil {
public static void block(BooleanSupplier isBlocked) throws InterruptedException {
for(; isBlocked.getAsBoolean(); ) {
- Thread.sleep(RaftServerConfigKeys.Rpc.TIMEOUT_MAX_MS_DEFAULT);
+ RaftServerConfigKeys.Rpc.TIMEOUT_MAX_DEFAULT.sleep();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/test/java/org/apache/ratis/server/impl/RaftReconfigurationBaseTest.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/server/impl/RaftReconfigurationBaseTest.java b/ratis-server/src/test/java/org/apache/ratis/server/impl/RaftReconfigurationBaseTest.java
index 00e12d2..bf7de9f 100644
--- a/ratis-server/src/test/java/org/apache/ratis/server/impl/RaftReconfigurationBaseTest.java
+++ b/ratis-server/src/test/java/org/apache/ratis/server/impl/RaftReconfigurationBaseTest.java
@@ -68,7 +68,7 @@ public abstract class RaftReconfigurationBaseTest {
@BeforeClass
public static void setup() {
// set a small gap for tests
- RaftServerConfigKeys.setStagingCatchupGap(prop::setInt, STAGING_CATCHUP_GAP);
+ RaftServerConfigKeys.setStagingCatchupGap(prop, STAGING_CATCHUP_GAP);
}
public abstract MiniRaftCluster getCluster(int peerNum) throws IOException;
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/test/java/org/apache/ratis/server/simulation/SimulatedRequestReply.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/server/simulation/SimulatedRequestReply.java b/ratis-server/src/test/java/org/apache/ratis/server/simulation/SimulatedRequestReply.java
index 75e49ea..7fb2c2c 100644
--- a/ratis-server/src/test/java/org/apache/ratis/server/simulation/SimulatedRequestReply.java
+++ b/ratis-server/src/test/java/org/apache/ratis/server/simulation/SimulatedRequestReply.java
@@ -29,10 +29,7 @@ import org.apache.ratis.util.Timestamp;
import java.io.IOException;
import java.util.Collection;
import java.util.Map;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
@@ -41,7 +38,7 @@ class SimulatedRequestReply<REQUEST extends RaftRpcMessage,
public static final String SIMULATE_LATENCY_KEY
= SimulatedRequestReply.class.getName() + ".simulateLatencyMs";
public static final int SIMULATE_LATENCY_DEFAULT
- = RaftServerConfigKeys.Rpc.TIMEOUT_MIN_MS_DEFAULT;
+ = RaftServerConfigKeys.Rpc.TIMEOUT_MIN_DEFAULT.toInt(TimeUnit.MILLISECONDS);
public static final long TIMEOUT = 3000L;
private static class ReplyOrException<REPLY> {
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestNotLeaderExceptionWithSimulation.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestNotLeaderExceptionWithSimulation.java b/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestNotLeaderExceptionWithSimulation.java
index 669d4df..c37e2fb 100644
--- a/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestNotLeaderExceptionWithSimulation.java
+++ b/ratis-server/src/test/java/org/apache/ratis/server/simulation/TestNotLeaderExceptionWithSimulation.java
@@ -19,9 +19,6 @@ package org.apache.ratis.server.simulation;
import org.apache.ratis.MiniRaftCluster;
import org.apache.ratis.RaftNotLeaderExceptionBaseTest;
-import org.apache.ratis.conf.RaftProperties;
-
-import java.io.IOException;
public class TestNotLeaderExceptionWithSimulation extends RaftNotLeaderExceptionBaseTest {
@Override
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftLogReadWrite.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftLogReadWrite.java b/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftLogReadWrite.java
index 026d1c1..3c10815 100644
--- a/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftLogReadWrite.java
+++ b/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftLogReadWrite.java
@@ -20,6 +20,7 @@ package org.apache.ratis.server.storage;
import org.apache.ratis.RaftTestUtil;
import org.apache.ratis.RaftTestUtil.SimpleOperation;
import org.apache.ratis.conf.RaftProperties;
+import org.apache.ratis.util.SizeInBytes;
import org.apache.ratis.protocol.ChecksumException;
import org.apache.ratis.protocol.ClientId;
import org.apache.ratis.server.RaftServerConfigKeys;
@@ -44,8 +45,6 @@ import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
-import static org.apache.ratis.server.RaftServerConfigKeys.MB;
-
/**
* Test basic functionality of LogReader, LogInputStream, and LogOutputStream.
*/
@@ -62,7 +61,7 @@ public class TestRaftLogReadWrite {
public void setup() throws Exception {
storageDir = RaftTestUtil.getTestDir(TestRaftLogReadWrite.class);
properties = new RaftProperties();
- RaftServerConfigKeys.setStorageDir(properties::set,
+ RaftServerConfigKeys.setStorageDir(properties,
FileUtils.fileAsURI(storageDir).toString());
}
@@ -172,7 +171,8 @@ public class TestRaftLogReadWrite {
out.flush();
// make sure the file contains padding
- Assert.assertEquals(RaftServerConfigKeys.Log.PREALLOCATED_SIZE_DEFAULT,
+ Assert.assertEquals(
+ RaftServerConfigKeys.Log.PREALLOCATED_SIZE_DEFAULT.getSize(),
openSegment.length());
// check if the reader can correctly read the log file
@@ -190,8 +190,8 @@ public class TestRaftLogReadWrite {
*/
@Test
public void testReadWithCorruptPadding() throws IOException {
- RaftServerConfigKeys.Log.setPreallocatedSize(properties::setInt, 4*MB);
- RaftServerConfigKeys.Log.setSegmentSizeMax(properties::setLong, 16*MB);
+ RaftServerConfigKeys.Log.setPreallocatedSize(properties, SizeInBytes.valueOf("4MB"));
+ RaftServerConfigKeys.Log.setSegmentSizeMax(properties, SizeInBytes.valueOf("16MB"));
RaftStorage storage = new RaftStorage(properties, StartupOption.REGULAR);
File openSegment = storage.getStorageDir().getOpenLogFile(0);
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftLogSegment.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftLogSegment.java b/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftLogSegment.java
index 5ac5db3..f538421 100644
--- a/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftLogSegment.java
+++ b/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftLogSegment.java
@@ -17,20 +17,10 @@
*/
package org.apache.ratis.server.storage;
-import static org.apache.ratis.server.RaftServerConfigKeys.KB;
-import static org.apache.ratis.server.RaftServerConfigKeys.MB;
-import static org.apache.ratis.server.impl.RaftServerConstants.INVALID_LOG_INDEX;
-import static org.apache.ratis.server.storage.LogSegment.getEntrySize;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
import org.apache.ratis.RaftTestUtil;
import org.apache.ratis.RaftTestUtil.SimpleOperation;
import org.apache.ratis.conf.RaftProperties;
+import org.apache.ratis.util.SizeInBytes;
import org.apache.ratis.protocol.ClientId;
import org.apache.ratis.server.RaftServerConfigKeys;
import org.apache.ratis.server.impl.RaftServerConstants.StartupOption;
@@ -38,11 +28,21 @@ import org.apache.ratis.shaded.proto.RaftProtos.LogEntryProto;
import org.apache.ratis.shaded.proto.RaftProtos.SMLogEntryProto;
import org.apache.ratis.util.FileUtils;
import org.apache.ratis.util.ProtoUtils;
+import org.apache.ratis.util.TraditionalBinaryPrefix;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.apache.ratis.server.impl.RaftServerConstants.INVALID_LOG_INDEX;
+import static org.apache.ratis.server.storage.LogSegment.getEntrySize;
+
/**
* Test basic functionality of {@link LogSegment}
*/
@@ -56,8 +56,7 @@ public class TestRaftLogSegment {
@Before
public void setup() throws Exception {
storageDir = RaftTestUtil.getTestDir(TestRaftLogSegment.class);
- RaftServerConfigKeys.setStorageDir(properties::set,
- storageDir.getCanonicalPath());
+ RaftServerConfigKeys.setStorageDir(properties, storageDir.getCanonicalPath());
}
@After
@@ -213,8 +212,8 @@ public class TestRaftLogSegment {
private RaftProperties getProperties(long maxSegmentSize, int preallocatedSize) {
RaftProperties p = new RaftProperties();
- RaftServerConfigKeys.Log.setSegmentSizeMax(p::setLong, maxSegmentSize);
- RaftServerConfigKeys.Log.setPreallocatedSize(p::setInt, preallocatedSize);
+ RaftServerConfigKeys.Log.setSegmentSizeMax(p, SizeInBytes.valueOf(maxSegmentSize));
+ RaftServerConfigKeys.Log.setPreallocatedSize(p, SizeInBytes.valueOf(preallocatedSize));
return p;
}
@@ -271,10 +270,10 @@ public class TestRaftLogSegment {
*/
@Test
public void testPreallocationAndAppend() throws Exception {
- final long max = 2*MB;
- RaftServerConfigKeys.Log.setSegmentSizeMax(properties::setLong, max);
- RaftServerConfigKeys.Log.setPreallocatedSize(properties::setInt, 16*KB);
- RaftServerConfigKeys.Log.setWriteBufferSize(properties::setInt, 10*KB);
+ final SizeInBytes max = SizeInBytes.valueOf(2, TraditionalBinaryPrefix.MEGA);
+ RaftServerConfigKeys.Log.setSegmentSizeMax(properties, max);
+ RaftServerConfigKeys.Log.setPreallocatedSize(properties, SizeInBytes.valueOf("16KB"));
+ RaftServerConfigKeys.Log.setWriteBufferSize(properties, SizeInBytes.valueOf("10KB"));
RaftStorage storage = new RaftStorage(properties, StartupOption.REGULAR);
final File file = storage.getStorageDir().getOpenLogFile(0);
@@ -289,7 +288,7 @@ public class TestRaftLogSegment {
long preallocated = 16 * 1024;
try (LogOutputStream out = new LogOutputStream(file, false, properties)) {
Assert.assertEquals(preallocated, file.length());
- while (totalSize + entrySize < max) {
+ while (totalSize + entrySize < max.getSize()) {
totalSize += entrySize;
out.write(entry);
if (totalSize > preallocated) {
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftStorage.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftStorage.java b/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftStorage.java
index cb375c6..ede9103 100644
--- a/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftStorage.java
+++ b/ratis-server/src/test/java/org/apache/ratis/server/storage/TestRaftStorage.java
@@ -49,8 +49,7 @@ public class TestRaftStorage {
@Before
public void setup() throws Exception {
storageDir = RaftTestUtil.getTestDir(TestRaftStorage.class);
- RaftServerConfigKeys.setStorageDir(properties::set,
- storageDir.getCanonicalPath());
+ RaftServerConfigKeys.setStorageDir(properties, storageDir.getCanonicalPath());
}
@After
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/test/java/org/apache/ratis/server/storage/TestSegmentedRaftLog.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/server/storage/TestSegmentedRaftLog.java b/ratis-server/src/test/java/org/apache/ratis/server/storage/TestSegmentedRaftLog.java
index fb4fe16..1fcb54b 100644
--- a/ratis-server/src/test/java/org/apache/ratis/server/storage/TestSegmentedRaftLog.java
+++ b/ratis-server/src/test/java/org/apache/ratis/server/storage/TestSegmentedRaftLog.java
@@ -22,6 +22,7 @@ import org.apache.ratis.MiniRaftCluster;
import org.apache.ratis.RaftTestUtil;
import org.apache.ratis.RaftTestUtil.SimpleOperation;
import org.apache.ratis.conf.RaftProperties;
+import org.apache.ratis.util.SizeInBytes;
import org.apache.ratis.protocol.ClientId;
import org.apache.ratis.protocol.RaftPeerId;
import org.apache.ratis.server.RaftServerConfigKeys;
@@ -45,8 +46,6 @@ import java.util.Collections;
import java.util.List;
import java.util.function.Supplier;
-import static org.apache.ratis.server.RaftServerConfigKeys.KB;
-
public class TestSegmentedRaftLog {
static {
RaftUtils.setLogLevel(RaftLogWorker.LOG, Level.DEBUG);
@@ -80,8 +79,7 @@ public class TestSegmentedRaftLog {
public void setup() throws Exception {
storageDir = RaftTestUtil.getTestDir(TestSegmentedRaftLog.class);
properties = new RaftProperties();
- RaftServerConfigKeys.setStorageDir(properties::set,
- storageDir.getCanonicalPath());
+ RaftServerConfigKeys.setStorageDir(properties, storageDir.getCanonicalPath());
storage = new RaftStorage(properties, RaftServerConstants.StartupOption.REGULAR);
}
@@ -190,8 +188,8 @@ public class TestSegmentedRaftLog {
*/
@Test
public void testAppendAndRoll() throws Exception {
- RaftServerConfigKeys.Log.setPreallocatedSize(properties::setInt, 16*KB);
- RaftServerConfigKeys.Log.setSegmentSizeMax(properties::setLong, 128*KB);
+ RaftServerConfigKeys.Log.setPreallocatedSize(properties, SizeInBytes.valueOf("16KB"));
+ RaftServerConfigKeys.Log.setSegmentSizeMax(properties, SizeInBytes.valueOf("128KB"));
List<SegmentRange> ranges = prepareRanges(1, 1024, 0);
final byte[] content = new byte[1024];
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/test/java/org/apache/ratis/statemachine/RaftSnapshotBaseTest.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/statemachine/RaftSnapshotBaseTest.java b/ratis-server/src/test/java/org/apache/ratis/statemachine/RaftSnapshotBaseTest.java
index c08931a..68ab8c3 100644
--- a/ratis-server/src/test/java/org/apache/ratis/statemachine/RaftSnapshotBaseTest.java
+++ b/ratis-server/src/test/java/org/apache/ratis/statemachine/RaftSnapshotBaseTest.java
@@ -92,8 +92,8 @@ public abstract class RaftSnapshotBaseTest {
prop.setClass(MiniRaftCluster.STATEMACHINE_CLASS_KEY,
SimpleStateMachine4Testing.class, StateMachine.class);
RaftServerConfigKeys.Snapshot.setAutoTriggerThreshold(
- prop::setLong, SNAPSHOT_TRIGGER_THRESHOLD);
- RaftServerConfigKeys.Snapshot.setAutoTriggerEnabled(prop::setBoolean, true);
+ prop, SNAPSHOT_TRIGGER_THRESHOLD);
+ RaftServerConfigKeys.Snapshot.setAutoTriggerEnabled(prop, true);
this.cluster = getFactory().newCluster(1, prop);
cluster.start();
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/6a755e66/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java b/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
index c8bf76e..b81e367 100644
--- a/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
+++ b/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
@@ -60,7 +60,7 @@ public class TestStateMachine {
{
// TODO: fix and run with in-memory log. It fails with NPE
// TODO: if change setUseMemory to true
- RaftServerConfigKeys.Log.setUseMemory(properties::setBoolean, false);
+ RaftServerConfigKeys.Log.setUseMemory(properties, false);
}
private MiniRaftClusterWithSimulatedRpc cluster;