Skip to content

Releases: hashicorp/raft

v1.7.1

29 Aug 11:34
42d3446
Compare
Choose a tag to compare

This patch release fixes two potential issues with Pre-Vote which was added in 1.7.0. One of these has been observed in a single deployed instance but we've been unable to replicate the exact conditions so impact is difficult to assess. Out of an abundance of caution we strongly recommend all 1.7.0 users upgrade to 1.7.1 to avoid this issue occurring.

  1. #605 Fixes the observed issue where a node looses leadership but is unable to get pre-votes accepted due to followers thinking it's still the leader. This was an implementation bug.
  2. #609 fixes a theoretical issue (not come up with an actual reproduction yet) where a very specific sequence of pre-votes could artificially prevent cluster followers from holding elections even though there is no active leader succeeding to get a quorum of pre-vote responses.

v1.7.0 (June 6th, 2024)

06 Jun 21:39
c923709
Compare
Choose a tag to compare

CHANGES

  • Raft multi version testing GH-559

IMPROVEMENTS

  • Raft pre-vote extension implementation, activated by default. GH-530

BUG FIXES

  • Fix serialize NetworkTransport data race on ServerAddr(). GH-591

v1.6.1 (January 8th, 2024)

06 Jun 00:42
0f873ea
Compare
Choose a tag to compare

CHANGES

  • Add reference use of Hashicorp Raft by @otoolep in #584
  • [COMPLIANCE] Add Copyright and License Headers by @hashicorp-copywrite in #580

IMPROVEMENTS

  • Bump github.com/hashicorp/go-hclog from 1.5.0 to 1.6.2 by @dependabot in #583

BUG FIXES

  • Fix rare leadership transfer failures when writes happen during transfer by @ncabatoff in #581

1.6.0

15 Nov 17:45
Compare
Choose a tag to compare

1.6.0 (November 15th, 2023)

CHANGES

  • Upgrade hashicorp/go-msgpack to v2, with go.mod upgraded from v0.5.5 to v2.1.1. GH-577

    go-msgpack v2.1.1 is by default binary compatible with v0.5.5 ("non-builtin" encoding of time.Time), but can decode messages produced by v1.1.5 as well ("builtin" encoding of time.Time).

    However, if users of this libary overrode the version of go-msgpack (especially to v1), this could break compatibility if raft nodes are running a mix of versions.

    This compatibility can be configured at runtime in Raft using NetworkTransportConfig.MsgpackUseNewTimeFormat -- the default is false, which maintains compatibility with go-msgpack v0.5.5, but if set to true, will be compatible with go-msgpack v1.1.5.

IMPROVEMENTS

  • Push to notify channel when shutting down. GH-567
  • Add CommitIndex API GH-560
  • Document some Apply error cases better GH-561

BUG FIXES

  • Race with candidateFromLeadershipTransfer GH-570

v1.5.0

21 Apr 12:29
8fdc4ce
Compare
Choose a tag to compare

Fixes a performance bug related to pipelining. See #541 for extensive details on the testing done.

Change in Default Behavior: This is being released as a minor version even though it changes the default behaviour of the library. The rationale for that is that in almost all cases we are aware of (including all HashiCorp tools) the previous behavior performs significantly worse than the new default. Most other users of this library are most likely to notice no change, or see a significant improvement in latency under high load so we want that to be the default experience rather than one that needs tuning to acheive.

It's possible if you are using this library in way that is significantly different to our typical usage (e.g. over very high latency networks and with enough throughput) that this could cause an increase in commit latency. The increase should never exceed the round-trip-time between your servers. The issue being fixed could cause latency increases in the order of 100x more than the mean commit time at high load. If you are still unsure, the old behavior can be retained by setting the new NetTransportConfig.MaxRPCsInFlight = 130.

See the PR for more analysis of this tradeoff.

v1.4.0: Merge pull request #550 from hashicorp/jm/1.4.0

17 Mar 20:28
a3acea6
Compare
Choose a tag to compare

What's Changed

  • Support log stores with a montonically increasing index. Implementing a log store with the MonotonicLogStore interface where IsMonotonic() returns true will allow Raft to clear all previous logs on user restores of Raft snapshots by @mpalmi, @banks, and @jmurret in #545

Full Changelog: v1.3.11...v1.4.0

v1.3.11

05 Oct 18:13
6b4e320
Compare
Choose a tag to compare

What's Changed

  • file_snapshot: do defer after os.Open succeed by @dbadoy in #519
  • check if server is in configuration when receiving a voteRequest by @dhiaayachi in #526

New Contributors

Full Changelog: v1.3.10...v1.3.11

v1.3.10

05 Aug 16:35
1075246
Compare
Choose a tag to compare

What's Changed

  • Improved election debug logs. by @benbuzbee in #516
  • Cap maximum grpc wait time when heartbeating to heartbeatTimeout/2. by @HridoyRoy in #494

Full Changelog: v1.3.9...v1.3.10

v1.3.9

27 Apr 14:47
44124c2
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.3.8...v1.3.9

v1.3.8

25 Apr 13:47
1b44a7b
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.3.7...v1.3.8