NATS v2.15.0-preview.1

v2.15.0-preview.1Pre-release

Release v2.15.0-preview.1

Added 8
  • Add desired state metalayer for JetStream streams and consumers to improve safety and reliability of asset moves and scales
  • Add cancel stream move endpoint to cancel in-flight scale/move operations on a stream
  • Add evacuate endpoints to safely evacuate streams and consumers from a node
  • Add metalayer rescue endpoint for disaster recovery to temporarily lower quorum requirements
  • Add stream backup and restore v2 format that reads per-message and correctly includes non-replicated consumers on follower nodes
  • Add detection of source stream recreation to restart sourcing from the beginning
  • Add stream source indexing to persist last sourced indices for instant lookup instead of expensive backward scans
  • Add domain-prefixed JS API support in system account for operating on leaf nodes from hub
Changed 2
  • Change replicated streams with sync_interval set to always to sync WAL entries but no longer sync upper stream layer writes
  • Improve durable source and mirror consumer resets with shorter wait through heartbeat short-circuiting of recreation backoff

From NATS

Changelog

[!IMPORTANT] This is a preview release for the upcoming 2.15 series. This is not a formal release candidate and is still undergoing testing, but we would welcome feedback.

This release also contains all changes up to and including v2.14.5.

Go Version
  • 1.27.0
Added

JetStream

  • Desired state metalayer (#8432, #8437, #8439, #8443, #8452, #8460, #8476)
    • A new desired state reconciliation engine for streams and consumers considerably improves the safety and reliability of asset moves and scales
    • Updating the placement or replication factor midway through an existing scale/move operation, cancelling an in-flight scale/move, or peer-removing is now much safer
  • Cancel stream move endpoint (#8476)
    • An in-flight scale/move operation on a stream can be cancelled and the asset returned to its original placement using the new $JS.API.STREAM.CANCEL_MOVE endpoint
  • Evacuate endpoints (#8443)
    • The new $JS.API.SERVER.EVACUATE endpoint can safely evacuate streams, and any consumers on those streams, from a node
    • The new $JS.API.STREAM.PEER.EVACUATE.* endpoint can safely evacuate a peer, and any consumers on that peer, from a stream
    • These operations combined allow for maintenance operations with full transfer of data and state without having to peer-remove first
  • Metalayer rescue for disaster recovery (#8408)
    • The new $JS.API.META.RESCUE endpoint can temporarily lower the quorum-needed for the metalayer, in order to facilitate the recovery of a system where nodes have been permanently lost and the metalayer cannot reach quorum
  • Stream backup and restore v2 (#7882)
    • A new backup format for stream snapshots which reads out per-message rather than per-block
    • The new backup format also now correctly includes non-replicated consumers on follower nodes
  • Detect source stream recreation (#8384)
    • The server now detects a source stream being recreated, restarting the sourcing back from the beginning, ensuring new messages are sourced
  • Stream source indexing (#8282)
    • Restarts and leader changes previously required expensive backward scans through the stream to find the last sourced indices. These are now persisted in an index for instant lookup.
  • Domain-prefixed JS API in system account (#8429)
    • When a system account is bridged between the hub and a leaf node, the domain-prefixed JS API can now be used to operate on the leaf node while directly connected to the hub
Changed

JetStream

  • Sync changes for replicated streams (#8447)
    • When the sync_interval is set to always, replicated streams now sync their WAL entries but no longer sync upper stream layer writes
    • The synced log allows the stream to recover safely, but removing unnecessary syncs from the upper stream layer dramatically improves performance
    • Non-replicated R1 streams are not affected by this change and will continue to sync at the stream layer as normal
Improved

JetStream

  • Shorter wait for durable source/mirror consumer resets (#8323)
    • When using durable consumers for sourcing or mirroring, the heartbeats now short-circuit the recreation backoff
Complete Changes

https://github.com/nats-io/nats-server/compare/v2.14.5...v2.15.0-preview.1

View original

Upgraded? How did it go?

Discussion