All Versions
23
Latest Version
3.3
Avg Release Cycle
34 days
Latest Release
1415 days ago

Changelog History
Page 1

  • v3.3 Changes

    January 20, 2021

    🚀 Dragonboat v3.3 is a major release that comes with new features and improvements. All v3.2.x users are recommended to upgrade.

    🆕 New features

    • 🔊 Pebble, which is bidirectional compatible with RocksDB, has been made the default engine for storing Raft Logs. RocksDB and CGO are no longer required.
    • ➕ Added the ability to slow down incoming proposals when the Raft Logs engine is highly loaded.
    • ➕ Added the option to get notified when proposals and config changes are committed.
    • ➕ Added an experimental gossip service to allow NodeHosts to use dynamically assigned IP addresses as RaftAddress.
    • ➕ Added the ability to better control memory footprint.
    • ➕ Added ARM64/Linux as a new targeted platform.

    ⬆️ Note that Pebble provides bidirectional compatibility with RocksDB v6.2.1. Existing Dragonboat applications can upgrade to v3.3 without any conversion unless a newer version of RocksDB was used. RocksDB v6.4.x has been briefly tested and it seems to be compatible with Pebble as well.

    👌 Improvements

    • ⚡️ Optimized the read index implementation.
    • ⬇️ Reduced LogDB restart delays.
    • 🔧 Made LogDB configurations accessible programmatically.
    • ➕ Added protobuf workaround to allow Dragonboat and etcd to be used in the same project.
    • 🛠 Fixed a few data race issues.
    • 🛠 Fixed a potential Raft election deadlock issue when nodes are highly loaded.
    • 👍 Allow incoming proposals to be rate limited when LogDB is busy.
    • Simplified many aspects of the library.

    💥 Breaking changes

    • The signature of config.LogDBFactoryFunc has been changed. Your application is not affected unless it uses a custom LogDB implementation.
    • 👍 Due to lack of user interests, C++ binding is no longer supported.
    • 👍 LevelDB based LogDB is no longer supported.
    • 🚚 NodeHostConfig's FS and SystemTickerPrecision fields have been moved into NodeHostConfig.Expert.
  • v3.2.8 Changes

    September 16, 2020

    🚀 Dragonboat v3.2.8 is a minor maintenance release.

    👌 Improvements

    • ⬆️ upgraded to github.com/lni/goutils v1.2.2
    • 🛠 fixed a potential data race
    • ⚡️ updated dummy certificates used in unit tests to avoid issues with Go1.5
  • v3.2.7 Changes

    September 07, 2020

    🚀 Dragonboat v3.2.7 is a minor maintenance release.

    👌 Improvements

    • ⬆️ upgraded to github.com/lni/goutils v1.2.1
  • v3.2.6 Changes

    August 22, 2020

    🚀 Dragonboat v3.2.6 is a minor maintenance release.

    👌 Improvements

    • 🛠 fixed how updates from stopped node are handled
  • v3.2.5 Changes

    August 14, 2020

    🚀 Dragonboat v3.2.5 is a minor maintenance release.

    👌 Improvements

    • 🛠 fixed a data race issue related to rejected Raft config change
  • v3.2.4 Changes

    August 08, 2020

    🚀 Dragonboat v3.2.4 is a minor maintenance release.

    👌 Improvements

    • 🛠 fixed a bug in snapshot compaction.
    • 🛠 fixed a bug in message queue.
  • v3.2.3 Changes

    May 21, 2020

    🚀 Dragonboat v3.2.3 is a minor maintenance release.

    👌 Improvements

    • 🛠 fixed a bug to allow witness node to generate dummy snapshot
    • ⬇️ reduced memory footprint when there are intensive concurrent reads
  • v3.2.2 Changes

    April 19, 2020

    🚀 Dragonboat v3.2.2 is a minor maintenance release.

    👌 Improvements

    • resolved an issue with protobuf v1.4.0.
  • v3.2.1 Changes

    April 19, 2020

    🚀 Dragonboat v3.2.1 is a minor maintenance release.

    👌 Improvements

    • resolved a protobuf issue to allow etcd and dragonboat to be used in the same project.
  • v3.2 Changes

    March 05, 2020

    ⬆️ Dragonboat v3.2 comes with new features and improvements. All v3.1.x users are recommended to upgrade.

    🆕 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.
    • 0️⃣ 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.