Aeron v1.28.0 Release Notes

Release Date: 2020-05-25 // 1 day ago
    • An experimental C API client is now available. We are happy to take feedback but be aware the API is subject to change as it gets refined.
    • 🚀 Cluster has changed status from experimental to being a preview feature. Many refinements and bug fixes have been made to cluster in the last few months as a result of significant destructive testing. The API is now stable as of this release and will only change before going GA if a significant issue is found. Support is commercially available.
    • Correct implementation of Cubic congestion control implementation to align with spec.
    • ➕ Add support to the C media driver for session-specific and multi-destination subscriptions (MDS), plus complete the functionality so the C media driver can support Archive.
    • 👌 Support using 0 for port on endpoint or control so OS assigns the port without conflict and then make it available on Publication or Subscription via each getting a new localSocketAddresses() method. Local socket addresses also get their own counters.
    • ⬇️ Reduced CPU time spent scanning for loss in Java and C drivers so they can scale to a larger number of connections.
    • 🔀 Apply consistent approach to merge window for ReplayMerge, Archive replication, and Cluster catchup.
    • ➕ Add the ability to stop a recording by recording identity when the recording id is known.
    • 🔧 Use CRC if configured and any possible data to help recover last fragments in a recording that may straddle a OS page after an unclean Archive shutdown.
    • 👌 Support common short name alias for idle strategies in config for both Java and C media driver such as noop, spin, yield, and backoff.
    • ⚡️ Update false sharing protection to support Java 15 class layout and add it to ExclusivePublication.
    • 👌 Improve Java and C++ samples so they are up to date and give more consistent performance numbers.
    • Java client close operations for publications, subscriptions, and counters now happen asynchronously so the client does not wait for acknowledgement. This allows for more rapid close of resources.
    • ➕ Add notifications for client heartbeat counters becoming available and unavailable so Aeron clients can be tracked.
    • 👍 Allow for race in creating a new recording in catalog and first segment being written which can happen when a replay is set up right after a recording starts.
    • ⬆️ Upgrade to javadoc-links 5.1.0.
    • ⬆️ Upgrade to ByteBuddy 10.10.1.
    • ⬆️ Upgrade to JUnit 5.6.2.
    • ⬆️ Upgrade to Gradle 6.4.1.
    • ⬆️ Upgrade to SBE 1.18.1.
    • ⬆️ Upgrade to Agrona 1.5.0.

    Java binaries can be found here...


Previous changes from v1.27.0

    • 🔧 Drivers can be named and names are gossiped between drivers so that they can be used to simplify configuration for endpoints. Driver Name Resolution.
    • 🛠 Fix header file dependencies for C++ archive client.
    • Spy subscriptions can now match on channel tag for publications.
    • Multicast flow control is selected when using manual or dynamic MDC (Multi-Destination-Cast).
    • ➕ Add tryStopRecording methods to the archive clients so they can be called without raising an exception if no recording is active.
    • ➕ Add a counter for the number of active control session on the archive.
    • ➕ Add autoStop overload when starting a recording in the archive so it is automatically cleaned up when the first matching recordings stops.
    • Resend recording progress events after back pressure to detect tail progress.
    • 👌 Improve URI channel parsing validation. Issue #887.
    • ⬇️ Reduce allocation when churning publications.
    • ➕ Add CentOS 7 build to CI.
    • ⬆️ Upgrade to BND 5.0.1.
    • ⬆️ Upgrade to Junit 5.6.1.
    • ⬆️ Upgrade to Gradle 6.3.
    • ⬆️ Upgrade to SBE 1.17.0.
    • ⬆️ Upgrade to Agrona 1.4.1.

    Java binaries can be found here...