Bug fixes:
- Data race in
asio_rpc_listener
(#392). - Integer overflow in
log_val_type
(#404). - Visual studio build fix (#405).
- Snapshot install condition (#407).
- Deadlock between
snapshot_sync_req
and snaphsot_creation (#426). - Zero-priority member becomes a leader even when the option is off (#436).
- Resetting the auto-adjusted quorum size (#437).
- Hanging
raft_server
destructor (#446). - Leaking
snapshot_ctx
of removed member (#473). - Snapshot creation order inversion (#479).
- Skipping commit when quorum size is adjusted to 1 (#488).
- Returning the responses of auto-forwarded requests (#497, #498, #555).
- Prevent a server joining another cluster (#504).
- Handling connection timeout (#516).
- Incorrect log index calculation in
handle_cli_req
(#526). - Gracefully joining Asio thread after exception (#525).
- Incorrect snapshot distance calculation (#539).
- Commit and pre-commit order inversion due to race between log append and config change (#554).
- Asio timer race (#556).
- Incorrect quorum size calculation for identifying busy connection (#564).
- Overwriting newer config with older snapshot's config (#566).
Features:
- Streaming mode.
- Conan build support.
- New joiner mode (#543).
- Allowing pre-configured SSL ctx (#412).
- Async log compaction API (#423).
- Callback to control automatic quorum size adjustment (#434).
- A new API to get the log index at becoming a leader (#444).
- CRC validation on entire message (#448).
- CRC per log entry (#454).
ServerJoineFailed
callback (#470).- A new API to schedule snapshot creation (#483).
- Leader resignation callback (#484).
- Buffer swap API for log entry (#490).
FollowerLost
callback (#517).- New callback for misbehaving peer (#537).
- Configurable timeout for
snapshot_ctx
(#561). - Serializable option for snapshot creation (#565).