raft v1.3.0 Release Notes

Release Date: 2021-04-22 // 6 months ago
  • ๐Ÿ‘Œ IMPROVEMENTS

    • โž• Added metrics for oldestLogAge and lastRestoreDuration to monitor capacity issues that can cause unrecoverable cluster failure [GH-452][GH-454]
    • ๐Ÿ”Š Made TrailingLogs, SnapshotInterval and SnapshotThreshold reloadable at runtime using a new ReloadConfig method. This allows recovery from cases where there are not enough logs retained for followers to catchup after a restart. [GH-444]
    • Inclusify the repository by switching to main [GH-446]
    • โž• Add option for a buffered ApplyCh if MaxAppendEntries is enabled [GH-445]
    • โž• Add string to LogType for more human readable debugging [GH-442]
    • โœ… Extract fuzzy testing into its own module [GH-459]

    ๐Ÿ› BUG FIXES

    • โšก๏ธ Update LogCache StoreLogs() to capture an error that would previously cause a panic [GH-460]

Previous changes from v1.2.0

  • ๐Ÿ‘Œ IMPROVEMENTS

    • โœ‚ Remove StartAsLeader configuration option [GH-364]
    • ๐Ÿ‘ Allow futures to react to Shutdown() to prevent a deadlock with takeSnapshot() [GH-390]
    • Prevent non-voters from becoming eligible for leadership elections [GH-398]
    • โœ‚ Remove an unneeded io.Copy from snapshot writes [GH-399]
    • โš  Log decoded candidate address in duplicate requestVote warning [GH-400]
    • Prevent starting a TCP transport when IP address is nil [GH-403]
    • Reject leadership transfer requests when in candidate state to prevent indefinite blocking while unable to elect a leader [GH-413]
    • โž• Add labels for metric metadata to reduce cardinality of metric names [GH-409]
    • โž• Add peers metric [GH-413]

    ๐Ÿ› BUG FIXES

    • โœ… Make LeaderCh always deliver the latest leadership transition [GH-384]
    • โšก๏ธ Handle updating an existing peer in startStopReplication [GH-419]