Expand description

The autofill decoration automatically fills gaps that appear in the log.

When a node has a gap in its (local copy of the) log, it must close that gap before it can apply later rounds’ entries to its state. There are two reasons why a node may observe gaps in its log.

  • A commit message may not have been received due to a temporary networking issue.
  • Multiple appends were running concurrently and one for an earlier round fails or is abandoned while while a later one goes through.

Independent of the cause, the solution is to try to fill the gaps, which is what this decoration does. It will either succeed or fail with a Converged error.

It should be noted that autofill uses Importance::MaintainLeadership to fill gaps. As such it will never contend with other nodes that may be in the process of proposing some other entry for the same round.

Structs

Autofill decoration.

A static configuration.

Traits

Extends NodeBuilder to conveniently decorate a node with Autofill.

Autofill configuration.