Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
gRPC has a limit on message size it accepts to receive. By default, in
the Go implementation this limit is 4MB. If a raft log entry if bigger
than 4MB (or the configured limit on the remote), the AppendEntries call
will fail. Equally, an AppendEntries can contains up to 64 (by default)
log entries. If the sum of all log entries is bigger than the message
limit, the call is reject. The same limit applies to
AppendEntriesPipeline.
This commit add support to "chunk" the AppendEntries call so that if it
exceeds the maximum size, it can still be transfered in multiple chunks.
It is backward compatible because it fallback to the previous behavior
if the remote does not support chunking because its raft-grpc-transport
is not up-to-date.