Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Append entries chunking #9

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

rledisez
Copy link
Contributor

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.

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant