This repository was archived by the owner on Dec 17, 2018. It is now read-only.

Description
The libraft log can grow without bound. Log compaction (i.e. snapshots) are necessary to address this. With compaction the current state is dumped to disk and log entries subsumed by this state are removed.
There are two high-level options here:
- Snapshots are triggered without coordination on each server. Logs and snapshots may be different on different servers. Leaders have to send snapshots and followers have to process them. Snapshots have to be loaded on startup to prime the caller's state.
- Leader triggers snapshot for the cluster. This maintains a high-degree of log coherency, but I don't think it adds much value. It requires coordination, and you still need all the messages and logic required for the first option.
Tasks