Releases: canonical/raft
v0.18.1
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
This release includes bug fixes and refactorings, with no new major features.
v0.17.1
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
v0.15.0
- 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
- 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 withraft_uv_set_auto_recovery
. - Support for
raft_uv_tcp_set_bind_address
. - Deprecate
raft_fixture_init
, useraft_fixture_initialize
combined withraft_fixture_grow
. - Bugfixes.
v0.13.0
-
move to
raft_fsm
v2 introducingsnapshot_finalize
.snapshot_finalize
, if not NULL this is run after a successful call tosnapshot
and must be used to cleanup state introduced bysnapshot
a.o. freeing allocated memory, releasing locks, etc. Ifsnapshot_finalize
is set, raft is no longer an owner of theraft_buffer
array returned bysnapshot
.
This change unfortunately breaks binary compatibility and buildslibraft.so.2
instead oflibraft.so.0
. -
bugfixes
v0.11.3
Bugfix release.
v0.11.2
Bugfix release.
v0.11.1
- By default, the libuv implementation of raft will use lz4 to compress snapshots. This feature can be disabled with
--disable-lz4
in theconfigure
step. - Minor bugfixes.