Aeron v1.22.0 Release Notes

Release Date: 2019-10-09 // over 4 years ago
    • ๐Ÿš€ This release increases the major version on the archive wire protocol and file format. To upgrade it is necessary to update all archive clients and the archive at the same time. Also an archive migration is required by running the CatalogTool with the migrate option. Be sure to backup the archive first before doing a migrate.
    • โž• Add recording signal reporting on the control stream for an archive. The RecordingSignalAdapter can be used to track signals of operations happening to recordings such as START, STOP, EXTEND, REPLICATE, MERGE, etc.
    • ๐Ÿ‘Œ Improved Javadoc for archive configuration.
    • ๐Ÿ‘Œ Improved checking for clashing session-ids for manually configured publications.
    • โšก๏ธ Reduce heartbeat updates to mark files to once per second to reduce IO traffic.
    • 0๏ธโƒฃ Reclaim mapped memory for images by not lingering when the last subscription is closed. This can reclaim the mapped memory 10 seconds sooner by default.
    • ๐Ÿ›  Fix ref counting to send channel endpoints which could cause a stream to get stopped early when multiple publications use the same channel.
    • โž• Add Archive replication feature which replicate a recording from one archive to another with the option of merging with a live multicast stream and continuing to support multiple redundant recordings.
    • โฌ‡๏ธ Reduce Java memory footprint of Archive client.
    • โฌ‡๏ธ Reduce default max concurrent recordings and replay in the archive from 50 to 20.
    • ๐Ÿ‘Œ Improve consistency of error codes and command validation to both Java and C Media Drivers.
    • โž• Add Image.activeTransportCount() to track active transports when using MDS which can be used to make ReplayMerge more reliable.
    • โž• Add correlation id to RegistrationException to help with debugging.
    • ๐Ÿ“œ Allocate non-sparse files in Java media driver at safepoint to help avoid Time-To-SafePoint (TTSP) issues.
    • โž• Add the ability to configure congestion control as a channel URI param with the cc=static or cc=cubic options.
    • ๐Ÿ– Handle channel endpoint errors in the C++ client.
    • โž• Add support to the Java client for adding an removing destinations to publications and subscriptions asynchronously.
    • Catch errors when opening receive destinations and report them to the client.
    • ๐Ÿ Clean up bound ports on Windows when destinations are removed from MDS Subscripitons.
    • ๐Ÿ‘Œ Improve error messages on channel conflicts.
    • โž• Add rejoin URI param to channels so that when an image gets timed out to configure if it should stream or not.
    • Don't try to send archive client close messages when publication is not connected to avoid exceptions.
    • ๐Ÿ‘Œ Improve reliability of counter active and reuse checks.
    • Clean up pending setup messages when a channel when endpoints are closed.
    • ๐Ÿ”ง Use heartbeat timestamp counters to indicate client liveness rather than command messages. This gives more stable behaviour on configurations with multiple clients sending many commands.
    • Reworking of C Media Driver internals to more easily accommodate other media APIs such as ef_vi and DPDK.
    • โž• Add option to delete the aeron.dir on shutdown of the media drivers.
    • ๐Ÿ‘‰ Make MediaDriver.close() idempotent.
    • Abort further reading of archive control stream once listed descriptors have been read so further messages are not missed.
    • ๐Ÿ‘Œ Improve reliability and precision of ReplayMerge.
    • โšก๏ธ Update session-id in catalog entries when an archive recording is extended.
    • โž• Add 'group' URI param to indicate if receiver group semantics, e.g. multicast NAK semantics, can be applied to Multi-Destination-Cast.
    • ๐ŸŒฒ More efficient and less allocating IP address dissection in logging agent.
    • ๐Ÿ”„ Change Java RecordingReader and CatalogTool so they can read active recordings.
    • ๐Ÿ‘Œ Improve handling of thread interrupt in Java client and archive client.
    • โž• Add INVOKER option and config check to C media driver.
    • โž• Add Java client Aeron.Context.awaitingIdleStrategy() configuration option for what to use when making a synchronous call to the driver.
    • โž• Add log started event with timestamp when logging is enabled.
    • โž• Add cncVersion to configuration print on driver start.
    • ๐Ÿ›  Fix potential out of bounds access for bytes received update in C media driver.
    • ๐Ÿ’… Upgrade to Checkstyle 8.24.
    • โฌ†๏ธ Upgrade to Mockito 3.1.0.
    • โฌ†๏ธ Upgrade to javadoc-links 4.1.2.
    • โฌ†๏ธ Upgrade to Gradle 5.6.2.
    • โฌ†๏ธ Upgrade to build-scan 2.4.2.
    • โฌ†๏ธ Upgrade to SBE 1.13.3.
    • โฌ†๏ธ Upgrade to Agrona 1.0.8.

    Java binaries can be found here...