BifroMQ-v3.3.0
This minor release includes the following changes:
Due to optimizations made to the storage engine in this release, the replace method is required for rolling upgrades. Please refer to the online documentation for detailed instructions.
New Features:
- Introduced a new built-in StoreBalancer (UnreachableReplicaRemovalBalancer) for automatically removing unreachable replicas.
- Added a new built-in StoreBalancer (RangeBootstrapBalancer) for cluster initialization, which can serve as an alternative to the bootstrap configuration option, relaxing the requirement for a unique 'bootstrapping' node.
- Implemented an auto-detection and cleanup strategy for "zombie-state" KVRange replicas in base-kv.
Improvements:
- Refactored base-kv to support a multi-RocksDB instance architecture, improving performance across multiple shards (KVRange).
- Enhanced the efficiency of internal management processes in base-kv, reducing contention during concurrent executions.
- Optimized the snapshot installation process to increase the success rate.
- Improved the mechanism for KVRange graceful exit from the cluster.
Bug Fixes:
- Resolved issue #98: SessionInfo lost updates when self-kicking.
- Fixed an issue where Checkpoints were not cleaned up promptly after their owner RocksDBCPableKVSpace was destroyed.
Others:
- Deprecated the built-in RecoveryBalancer, which could potentially cause data inconsistency.
- Implemented a workaround(8580fd8) for an unresolved issue in OpenJDK17 that may occur sporadically.
- Upgraded major dependency versions: grpc, netty, rocksdb, etc.
Full Changelog: v3.2.2...v3.3.0