Aeron v1.31.1 Release Notes

Release Date: 2020-11-02 // 12 months ago
    • ๐Ÿ›  Fix bug in C++ client managing images under a subscriptions due to bug with GCC 7.3.1 failing to emit an acquire fence.
    • ๐Ÿ›  Fix bug with cleaning up log buffers which could result in segfault in native driver.
    • ๐Ÿ›  Fix bug in C++ client with putValueVolatile.
    • โž• Add AeronException.Category name to the beginning of error message to indicate the severity in the DistinctErrorLog.
    • ๐Ÿ‘Œ Improved Javadoc.
    • โฑ Schedule Status Messages with more relaxed memory ordering for a ~3% throughput improvement in the Java driver.
    • โฑ Memory order fix for scheduling NAKs and Status Messages in native C driver.
    • ๐Ÿ Enable higher-resolution timers on Windows for native driver so sleep periods less than 16ms.
    • โฌ†๏ธ Upgrade to Mockito 3.5.15.

    Java binaries can be found here...


Previous changes from v1.31.0

    • ๐Ÿ Handle failed log buffer delete in C media driver on Windows. This can happen when a client holds a mapped file open and the driver tries to delete it. PR #1073.
    • 0๏ธโƒฃ Increase default client liveness timeout from 5->10s and publication unblock timeout from 10-15s to be softer on clients that experience bad GC pauses or run in resource starved environments.
    • โž• Add C++ ChannelUriStringBuilder#initialPosition method to set the initial position of a publication.
    • โž• Add ownerId to publication limit counters for being able to track which client created a publication.
    • ๐Ÿ‘Œ Improve javadoc and reduce the scope of some methods that should not have been public.
    • ๐Ÿ›  Fix C++ AtomicCounter::getAndSet.
    • ๐Ÿ›  Fix timer cancellation when scheduling in cluster. Issue #1071.
    • ๐Ÿ”ง ReplayMerge now substitutes the endpoint from the replayDestination into the replayChannel to simplify configuration.
    • ๐Ÿ‘Œ Support using a port of 0 on the replay destination for ReplayMerge so that it is assigned by the OS from the ephemeral range.
    • ๐Ÿ‘Œ Support using a port of 0 on the replication channel between archives so that it is assigned by the OS from the ephemeral range.
    • ๐Ÿ›  Fix the ability to add and remove a destination with port 0 to an MDS Subscription.
    • ๐Ÿ†• New subscriptions now late join a stream at the min of existing subscriptions rather than max.
    • ๐Ÿ›  Fix implementation of ExclusivePublication::tryClaim in C++ wrapper client.
    • โž• Add Cubic congestion control support to the C media driver. PR #1065.
    • ๐Ÿ— Default to building the C++ archive client as part of the native build.
    • ๐Ÿ‘Œ Improve the native Windows build for CLion.
    • โœ‚ Remove the need for having 7-Zip installed for native build on Windows.
    • ๐Ÿ‘Œ Improve error handling for archive errors in the consensus module so warnings can be issued and retried.
    • โฑ Set media driver heartbeat to -1 on clean shutdown so it can be immediately restarted without waiting for driver timeout.
    • โž• Add Clang 11 to build mix.
    • โž• Add Java 15 to build mix.
    • ๐Ÿ”„ Change stop replay failures in the cluster from errors to warnings.
    • ๐Ÿ‘Œ Improve ExtendRecordingTest to be a better example.
    • ๐Ÿ›  Fix cluster tutorial scripts.
    • ๐Ÿ‘Œ Improve samples code.
    • ๐Ÿ’… Upgrade to Checkstyle 8.36.2.
    • โฌ†๏ธ Upgrade to Shadow 6.1.0.
    • โฌ†๏ธ Upgrade to ByteBuddy 1.10.17.
    • โฌ†๏ธ Upgrade to HdrHistogram_c 0.11.2.
    • โฌ†๏ธ Upgrade to SBE 1.20.3.
    • โฌ†๏ธ Upgrade to Agrona 1.8.0.

    Java binaries can be found here...