Skip to content

Release v2.15.0-RC.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Sep 16:35
· 1 commit to main since this release
v2.15.0-RC.1
362f2f3

Changelog

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

Go Version

Added

JetStream

  • Desired state metalayer (#8432, #8437, #8439, #8443, #8452, #8460, #8476, #8576)
    • 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, #8516, #8283)
    • 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

  • Streams now have a default limit of 1000 consumers, unless max_consumers is specified in the stream config or account limits (#8337, #8566)
    • Applications planning to use a large number of consumers on a stream should configure max_consumers in the stream config or account limits to an appropriately high number
    • The server-wide default of 1000 can be overridden by setting default_max_consumers in the JetStream limits, or can be disabled by setting to -1
    • This limit does not affect existing consumers and will not result in consumer deletions, only the creation of new consumers is prevented
  • 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
  • The js_raft_delete_range feature is now enabled by default (#8520)

Leafnodes

  • The no_advertise option no longer includes the hub's own listener address (#8451)

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

Fixed

Leafnodes

  • Leafnode isolation using request_isolation, or with hub-enforced isolate, now works correctly across cluster nodes (#8504)

Complete Changes

v2.14.6...v2.15.0-RC.1