highlights
database fingerprint checksum — a new database fingerprint checksum mechanism for verifying database state integrity, along with WAL checksum gauge metrics for improved observability. (#877, #890, #891)
control request replication via WAL — control requests are now replicated through the WAL state machine, ensuring consistency across the cluster. (#882)
leader hint support — when a client sends a request to a non-leader node, the response now includes a hint pointing to the actual leader, reducing unnecessary round-trips. (#883)
negotiated features — support for feature negotiation between client and server, enabling safe rollout of new capabilities. (#878)
bug fixes
- delete idx file before txn to prevent dangling idx on crash (#920) — @mattisonchao
- prevent panic when reading empty WAL index file (#912) — @coderzc
- propagate WAL CRC chain across snapshot recovery (#901) — @mattisonchao
- prevent infinite loop in
balanceHighestNodeon selector error (#895) — @mattisonchao - avoid unexpected dataServer join quorum (#880) — @mattisonchao
- fix type assertion panic in
Cache.Get()when key not found (#881) — @labuladong - eliminate data race in maelstrom message parsing (#918) — @mattisonchao
- eliminate data races on controller logger and term fields (#907) — @mattisonchao
- eliminate data race on
leaderController.logvia atomic term (#903) — @mattisonchao - add read lock to WAL segment
Flushto prevent data race withClose(#893) — @mattisonchao - treat EOF as retriable error on write stream (#917) — @mattisonchao
- continue trying other shards when quarantining in leader rebalance (#908) — @mattisonchao
- re-sort node load ratios after recalculation (#894) — @mattisonchao
- use deterministic protobuf marshaling for notification checksum (#888) — @mattisonchao
improvements
- add retry logic to follower
stateAppliergoroutine (#892) — @mattisonchao - refactor follower controller for better lifecycle management (#887) — @mattisonchao
- dynamic log level changes now affect existing loggers (#914) — @mattisonchao
- upgrade log level from debug to warn on operation failure (#884) — @mattisonchao
ci & build
- add manual Docker build & push workflow (#919) — @mattisonchao
- bump
aquasecurity/trivy-actionfrom 0.33.0 to 0.34.0 (#886) — @dependabot - stabilize flaky
TestControlRequestFeatureEnabled(#915) — @mattisonchao - stabilize flaky
TestLeaderHinttests (#916) — @mattisonchao
full changelog: v0.15.3...v0.16.0