dragonboat v3.3 Release Notes

Release Date: 2021-01-20 // 9 months ago
  • ๐Ÿš€ 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 a 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.

Previous changes from v3.2.8

  • ๐Ÿš€ 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