Changelog
Refer to the 2.14 Upgrade Guide for backwards compatibility notes with 2.12.x. Please note that the 2.13.x version was skipped.
Go Version
- 1.26.7
Improved
General
- Removal from service import response maps is now constant-time (#8463)
- The client code no longer resets the deadline more times than necessary when flushing client buffers (#8513)
- The client write buffers are now freed correctly when the working buffer exceeds a rational size (#8515)
JetStream
- Stream reads are now isolated with a separate lock, which improves the performance of direct gets (#8486)
- Improved the performance of looking up matching sequence numbers for multi-subject gets (#8486)
Fixed
General
- WebSocket client buffers are recycled more aggressively when reallocating into larger buffers (#8518)
JetStream
- The filestore block sync no longer incorrectly skips blocks that were compacted during the same pass (#8456)
- The filestore block sync now performs a single directory sync upon completion rather than once per compacted block (#8461)
- The filestore I/O semaphore now covers block sync operations (#8462)
- Stream config updates with replicas greater than 1 are now rejected on non-clustered systems (#8464)
- Fixed some issues that could prevent stream snapshots from taking place on a clean shutdown (#8465)
- The filestore inline compaction no longer ignores
sync_interval: always(#8475) - The stream created time is now preserved after recovery on a standalone server (#8471, contributed by @Green7)
- Fixed a data race that could apply when accessing the batch ID (#8369)
- Fixed a data race when reading the consumer direct or sourcing status (#8478, contributed by @nberlee)
- Prevent the consumer direct or sourcing status from being changed with a consumer update (#8478, contributed by @nberlee)
- Fixed an issue where the server could fail to distinguish consumer tiers when enforcing limits (#8484)
- Fixed a flow control problem where replicated consumers could get stuck after a leader change (#8488)
- Fixed various consumer create issues that could destroy the state of an existing consumer with the same name (#8491)
- Internal message delete proposals are no longer counted in the JS API statistics (#8502)
- Dynamic filestore reservations no longer incorrectly shrink based on used storage after restarts (#8503)