szetszwo commented on a change in pull request #506:
URL: https://github.com/apache/ratis/pull/506#discussion_r750085609
##########
File path:
ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java
##########
@@ -405,6 +405,17 @@ static boolean installSnapshotEnabled(RaftProperties
properties) {
static void setInstallSnapshotEnabled(RaftProperties properties, boolean
shouldInstallSnapshot) {
setBoolean(properties::setBoolean, INSTALL_SNAPSHOT_ENABLED_KEY,
shouldInstallSnapshot);
}
+
+ String READ_STATEMACHINE_DATA_TIMEOUT_KEY = PREFIX +
".read.statemachine.data.timeout";
+ TimeDuration READ_STATEMACHINE_DATA_TIMEOUT_DEFAULT =
TimeDuration.valueOf(1000, TimeUnit.MILLISECONDS);
+ static TimeDuration readStatemachineDataTimeout(RaftProperties
properties) {
+ return
getTimeDuration(properties.getTimeDuration(READ_STATEMACHINE_DATA_TIMEOUT_DEFAULT.getUnit()),
+ READ_STATEMACHINE_DATA_TIMEOUT_KEY,
READ_STATEMACHINE_DATA_TIMEOUT_DEFAULT, getDefaultLog());
+ }
+ static void setReadStatemachineDataTimeout(RaftProperties properties,
TimeDuration readStatemachineTimeout) {
+ setTimeDuration(properties::setTimeDuration,
READ_STATEMACHINE_DATA_TIMEOUT_KEY, readStatemachineTimeout);
+ }
+
Review comment:
Let's move the new conf next to sync.timeout in
RaftServerConfigKeys.Log.StateMachineData.
```
String READ_TIMEOUT_KEY = PREFIX + ".read.timeout";
TimeDuration READ_TIMEOUT_DEFAULT = TimeDuration.valueOf(1000,
TimeUnit.MILLISECONDS);
static TimeDuration readTimeout(RaftProperties properties) {
return
getTimeDuration(properties.getTimeDuration(READ_TIMEOUT_DEFAULT.getUnit()),
READ_TIMEOUT_KEY, READ_TIMEOUT_DEFAULT, getDefaultLog());
}
static void setReadTimeout(RaftProperties properties, TimeDuration
readStatemachineTimeout) {
setTimeDuration(properties::setTimeDuration, READ_TIMEOUT_KEY,
readStatemachineTimeout);
}
```
##########
File path:
ratis-server/src/main/java/org/apache/ratis/server/metrics/SegmentedRaftLogMetrics.java
##########
@@ -67,6 +67,10 @@
/** Number of entries appended to the raft log */
public static final String RAFT_LOG_APPEND_ENTRY_COUNT = "appendEntryCount";
public static final String RAFT_LOG_PURGE_METRIC = "purgeLog";
+ /** Time taken for a Raft log operation to complete write execution. */
+ public static final String RAFT_LOG_WRITE_STATEMACHINE_TIMEOUT_COUNT =
"numStateMachineWriteTimeout";
+ /** Time taken for a Raft log operation to complete read execution. */
+ public static final String RAFT_LOG_READ_STATEMACHINE_TIMEOUT_COUNT =
"numStateMachineReadTimeout";
Review comment:
Let's call them "numStateMachineDataWriteTimeout" and
"numStateMachineDataReadTimeout".
```
/** Time taken for a Raft log operation to complete write state machine
data. */
public static final String RAFT_LOG_STATEMACHINE_DATA_WRITE_TIMEOUT_COUNT
= "numStateMachineDataWriteTimeout";
/** Time taken for a Raft log operation to complete read state machine
data. */
public static final String RAFT_LOG_STATEMACHINE_DATA_READ_TIMEOUT_COUNT =
"numStateMachineDataReadTimeout";
```
##########
File path:
ratis-server/src/main/java/org/apache/ratis/server/metrics/RaftLogMetricsBase.java
##########
@@ -72,6 +72,10 @@ public void onLogEntryCommitted(LogEntryHeader header) {
}
}
+ @Override
+ public void onStateMachineReadTimeout() {
+ }
+
Review comment:
See default in RaftLogMetrics so that we don't have to override it here.
##########
File path:
ratis-server/src/main/java/org/apache/ratis/server/raftlog/RaftLogBase.java
##########
@@ -75,6 +75,7 @@
private final Runner runner = new Runner(this::getName);
private final OpenCloseState state;
private final LongSupplier getSnapshotIndexFromStateMachine;
+ private final TimeDuration readStatemachineTimeout;
Review comment:
Rename it to stateMachineDataReadTimeout.
##########
File path:
ratis-server-api/src/main/java/org/apache/ratis/server/metrics/RaftLogMetrics.java
##########
@@ -23,4 +23,6 @@
public interface RaftLogMetrics {
/** A log entry just has been committed. */
void onLogEntryCommitted(LogEntryHeader header);
+ /** Read statemachine timeout */
+ void onStateMachineReadTimeout();
Review comment:
Let's rename it to onStateMachineDataReadTimeout() and add also
onStateMachineDataWriteTimeout().
```
/** Write statemachine data timeout */
default void onStateMachineDataWriteTimeout() {
}
/** Read statemachine data timeout */
default void onStateMachineDataReadTimeout() {
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]