Skip to content
This repository has been archived by the owner on Mar 4, 2024. It is now read-only.

Releases: canonical/raft

v0.18.1

13 Feb 16:38
Compare
Choose a tag to compare

This is the final release of this project. The dqlite team has discontinued maintenance of libraft, choosing instead to incorporate its source code into dqlite as a private implementation detail. We regret any inconvenience caused by this change.

If you depend on dqlite but not on raft directly, check the dqlite repository for up-to-date information about how to use dqlite's bundled raft build configuration. If you previously depended on dqlite's raft, you should switch to the maintained fork cowsql/raft.

v0.18.0

21 Sep 15:08
Compare
Choose a tag to compare

This release includes bug fixes and refactorings, with no new major features.

v0.17.1

17 Jan 17:58
Compare
Choose a tag to compare

This release includes some breaking changes to the raft.h API; these were made with forward-compatibility in mind, so we expect to be able to avoid such breaking changes in the future. See #303.

In addition, this release fixes some longstanding bugs in libraft:

  • Correcting the quorum calculation that determines when it's safe to apply a log entry: #336
  • Ensuring that a "known good" configuration is always available to roll back to when a new configuration can't be committed: #354

Other miscellaneous bug fixes are also included, addressing potential crashes when a Raft state transition occurs during an asynchronous operation like writing to disk.

v0.16.0

18 Nov 14:38
Compare
Choose a tag to compare
  • Add support for hostnames, see #298 and linked PR's.
  • Bugfixes

v0.15.0

23 Aug 14:45
Compare
Choose a tag to compare
  • raft_io version 2 introducing async_work
  • raft_fsm version introducing snapshot_async
  • disable failing test for libuv 1.44.2 and higher

v0.14.0

27 Jun 07:24
Compare
Choose a tag to compare
  • Support for automated recovery of corrupt segments upon startup. When detecting a corrupt segment, raft will rename the segment to corrupt-{timestamp}-{original-name} and attempt to start again, once. This behaviour can be disabled with raft_uv_set_auto_recovery.
  • Support for raft_uv_tcp_set_bind_address.
  • Deprecate raft_fixture_init, use raft_fixture_initialize combined with raft_fixture_grow.
  • Bugfixes.

v0.13.0

08 Apr 09:59
3769e75
Compare
Choose a tag to compare
  • move to raft_fsm v2 introducing snapshot_finalize. snapshot_finalize, if not NULL this is run after a successful call to snapshot and must be used to cleanup state introduced by snapshot a.o. freeing allocated memory, releasing locks, etc. If snapshot_finalize is set, raft is no longer an owner of the raft_buffer array returned by snapshot.
    This change unfortunately breaks binary compatibility and builds libraft.so.2 instead of libraft.so.0.

  • bugfixes

v0.11.3

17 Jan 12:52
456fd20
Compare
Choose a tag to compare

Bugfix release.

v0.11.2

03 Aug 09:34
Compare
Choose a tag to compare

Bugfix release.

v0.11.1

07 Jun 08:17
f2bb495
Compare
Choose a tag to compare
  • By default, the libuv implementation of raft will use lz4 to compress snapshots. This feature can be disabled with --disable-lz4 in the configure step.
  • Minor bugfixes.