Skip to content

v3.2.0 released

Compare
Choose a tag to compare
@lni lni released this 05 Mar 07:40
· 28 commits to release-3.2 since this release

New features

  • Added snappy compression support for Raft entires and snapshots.
  • Added experimental witness support.
  • Added new API to allow LogDB compaction to be manually triggered.
  • Added event listener support to allow users to be notified for certain Raft events.
  • Added system event listener support to allow users to be notified for certain system events.
  • Added Raft related metrics to exported.
  • Added rate limit support to control the maximum bandwidth used for snapshot streaming.
  • Updated the C++ binding to cover all v3.1 features. Thanks JasonYuchen for working on that.
  • Added a virtual filesystem layer to support more filesystem related tests.
  • Added experimental Windows and FreeBSD support.

Improvements

  • Removed the restriction on max proposal payload size.
  • Re-enabled the range delete support in LogDB.
  • Better handling of concurrent snapshot streams.
  • Extensive testing have been done on a high performance native Go KV store called Pebble.
  • TolerateCorruptedTailRecords is now the default WAL recovery mode in the RocksDB based LogDB.

Breaking changes

There is no breaking change for regular users. However,

  • If you have built customized transport module implementing the raftio.IRaftRPC interface, there is minor change to the config.RaftRPCFactoryFunc type. See github.com/lni/dragoboat/config/config.go for details.
  • The default transport module has been updated, it is no longer compatible with earlier versions of dragonboat.
  • The default LogDB data format is no longer backward compactible with v3.1 or earlier.

Other changes

  • LevelDB support has been marked as depreciated. It will be removed from dragonboat in the next major release.