etcd/raft/rafttest
Nathan VanBenschoten f89b06dc6d raft: provide protection against unbounded Raft log growth
The suggested pattern for Raft proposals is that they be retried
periodically until they succeed. This turns out to be an issue
when a leader cannot commit entries because the leader will continue
to append re-proposed entries to its log without committing anything.
This can result in the uncommitted tail of a leader's log growing
without bound until it is able to commit entries.

This change add a safeguard to protect against this case where a
leader's log can grow without bound during loss of quorum scenarios.
It does so by introducing a new, optional ``MaxUncommittedEntriesSize
configuration. This config limits the max aggregate size of uncommitted
entries that may be appended to a leader's log. Once this limit
is exceeded, proposals will begin to return ErrProposalDropped
errors.

See cockroachdb/cockroach#27772
2018-10-13 23:25:05 -04:00
..
doc.go raft: update LICENSE header 2016-05-12 20:49:15 -07:00
network.go raft: change import paths to "go.etcd.io/etcd" 2018-08-28 17:47:52 -07:00
network_test.go raft: change import paths to "go.etcd.io/etcd" 2018-08-28 17:47:52 -07:00
node.go raft: provide protection against unbounded Raft log growth 2018-10-13 23:25:05 -04:00
node_bench_test.go raft: change import paths to "go.etcd.io/etcd" 2018-08-28 17:47:52 -07:00
node_test.go raft: change import paths to "go.etcd.io/etcd" 2018-08-28 17:47:52 -07:00