diff --git a/ratis-docs/src/site/markdown/configurations.md b/ratis-docs/src/site/markdown/configurations.md index 71eae7d3d1..0d5de05359 100644 --- a/ratis-docs/src/site/markdown/configurations.md +++ b/ratis-docs/src/site/markdown/configurations.md @@ -458,11 +458,11 @@ the leader won't send snapshots to follower. It will just send a notification to that follower instead. The follower's statemachine is responsible for fetching and installing snapshot by some other means. -| **Property** | `raft.server.log.appender.wait-time.min` | -|:----------------|:-----------------------------------------------| -| **Description** | wait time between two subsequent AppendEntries | -| **Type** | TimeDuration | -| **Default** | 10ms | +| **Property** | `raft.server.log.appender.wait-time.min` | +|:----------------|:---------------------------------------------------------------------------| +| **Description** | wait time between two subsequent AppendEntries. Must be a positive number. | +| **Type** | TimeDuration | +| **Default** | 1ms | | **Property** | `raft.server.log.appender.retry.policy` | diff --git a/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java b/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java index 0784eaf047..b48c3e947b 100644 --- a/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java +++ b/ratis-grpc/src/main/java/org/apache/ratis/grpc/server/GrpcLogAppender.java @@ -57,6 +57,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.locks.LockSupport; /** * A new log appender implementation using grpc bi-directional stream API. @@ -353,7 +354,8 @@ void onNext(AppendEntriesRequestProto proto) } // stall for stream to be ready. while (!stream.isReady() && running) { - sleep(waitForReady, isHeartBeat); + //sleep(waitForReady, isHeartBeat); + LockSupport.parkNanos(waitForReady.toLong(TimeUnit.NANOSECONDS)); } stream.onNext(proto); }