Dragonboat v3.2 is a minor release with new features and improvements. All v3.1.x users are recommended to upgrade.
- Added snappy compression support for Raft entires and snapshots.
- C++ binding has been updated to cover all v3.x features. Thanks JasonYuchen for working on that.
- Removed the restriction on max proposal payload size.
There is no breanking 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 internal transport module has been updated, it is no longer compatible with earlier versions of dragonboat.
Dragonboat v3.1 is a maintenance release with breaking change. All v3.0.x users are recommended to upgrade. Please make sure to carefully read the CHANGELOG below before upgrading.
- Fixed ImportSnapshot.
- Added NodeHostConfig.RaftEventListener to allow user applications to be notified for certain Raft events.
- Made restarting an existing node faster.
- Immediately return ErrClusterNotReady when requests are dropped for not having a leader.
- When upgrading to v3.1.x from v3.0.x, dragonboat requires all streamed or imported snapshots to have been applied. github.com/lni/dragonboat/tools/upgrade310 is provided to check that. See the godoc in github.com/lni/dragonboat/tools/upgrade310 for more details. For users who use NodeHost.RequestSnapshot to export snapshots for backup purposes, we recommend to re-generate all exported snapshots once upgraded to v3.1.
Dragonboat v3.0 is a major release with breaking changes. Please make sure to carefully read the CHANGELOG below before upgrading.
- Added on disk state machine (statemachine.IOnDiskStateMachine) support. The on disk state machine is close to the concept described in the section 5.2 of Diego Ongaro's Raft thesis.
- Added new API for requesting a snapshot to be created or exported.
- Added the ability to use exported snapshot to repair permanently damaged cluster that no longer has majority quorum.
- Added new API for cleaning up data and release disk spaces after a node is removed from its Raft cluster.
- Added the ability to limit peak memory usage when disk or network is slow.
- Added Go module support. Go 1.12 is required.
- Further improved self checking on configurations.
- Added snapshot binary format version 2 with block base checksum.
- Synchronous variants have been provided for all asynchronous user request APIs in NodeHost.
- The Drummer package has been made invisible from user applications.
- The statemachine.IStateMachine interface has been upgraded to reflect the fact that not all state machine data is stored in memory (#46).
- Added support to store Raft Logs in LevelDB.
Initial open source release.