Skip to content

Releases: real-logic/aeron

1.28.2

28 May 19:42
Compare
Choose a tag to compare
  • Fix issue with replaying cluster log when a snapshot is invalidated after a clean termination.
  • Correct arguments to onReplayNewLeadershipTerm which got transposed in 1.27.0 release.
  • Validate lower bound of MTU in config so payload must have some contents.

Java binaries can be found here...

1.28.1

27 May 16:16
Compare
Choose a tag to compare
  • Fix race condition when calling size on C queues.
  • Remove clashing non const ExclusivePublication::channelStatus() method. Issue #946.
  • Upgrade to SBE 1.18.2.
  • Upgrade to Agrona 1.5.1.

Java binaries can be found here...

1.28.0

25 May 19:17
Compare
Choose a tag to compare
  • 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...

1.27.0

01 Apr 19:36
Compare
Choose a tag to compare
  • 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...

1.26.0

04 Mar 22:51
Compare
Choose a tag to compare
  • Add correlation-id to ArchiveException and provide the ability to get the last used correlation-id in AeronArchive client.
  • Add re-resolution of endpoints when they timeout and become unconnected which can happen when machines migrate in a cloud environment to the Java driver.
  • Add TaggedMulticastFlowControl and ability to configure flow control via URI params for Java and C media drivers.
  • Deprecate PreferredMulticastFlowControl.
  • Fix mutexes for the C media driver on Windows. PR #867.
  • Fix handling of sockets the C media driver on Windows. PR #866.
  • Fix thread handling for the C media driver on Windows. PR #864.
  • Fix mmap on Windows for the C media driver. PR #865.
  • SetWaitableTimer expects a duration in 100-nanosecond intervals on Windows in C media driver. PR #868.
  • Fix NPE when -checksum flag is not used, and validation Checksum classname if it is used with ArchiveTool.
  • Deal with asynchronous errors from the archive when replicating or Replay Merge.
  • Fixes for Windows C driver. PR #861.
  • Warnings clean up in native code.
  • Fix socket close on Windows for C driver. PR #857.
  • Fix getting a random value in C driver on Windows. PR #854.
  • Reduce allocation of direct buffers in the archive to minimum of what is required depending on configuration.
  • Improve archive behaviour from unexpected outcomes of file read operations.
  • Migrate to Gradle maven-publish plugin.
  • Improve closing of resources in aborted or interrupted operation for Java client and modules.
  • Fix unexpected unavailable image which could occur with mixed use of wildcard and session specific subscriptions on the same channel.
  • Fix deadlock which could occur in C++ client if destroyed too quickly after creation. Issue #844.
  • Improve performance of Archive replay. Gains are 25%-50% depending on message length and platform.
  • Add client shared library support to C++ client. PR #836.
  • Only use MDS for archive replicate when joining a live stream or using a tagged subscription. This allows for multiple concurrent replication streams of recordings which are not joining live or being tagged.
  • Make receiver id channel endpoint specific so multi-destination subscriptions get flow controlled independently as they use different sockets. This results in less loss when using Replay Merge.
  • Improve performance of logging agent to file by batching event writes.
  • Upgrade to Gradle 6.2.1.
  • Upgrade to Versions 0.28.0.
  • Upgrade to Mockito 3.3.0.
  • Upgrade to HdrHistogram_c 0.9.13.
  • Upgrade to BND 5.0.0.
  • Upgrade to SBE 1.16.3.
  • Upgrade to Agrona 1.4.0.

Java binaries can be found here...

1.25.1

21 Jan 19:52
Compare
Choose a tag to compare
  • Log to ring buffer with zero copy semantics for improved logging performance. PR #831.
  • Retain file handle after establishing mapping in Windows C++ client. Issue #826.
  • Improve encoding performance of logging to file.
  • Log all events in a consistent manner with standard header.
  • Be consistent with the use of positional reads and writes in the archive for supported OS synchronisation and slightly improved performance.
  • Configure Java DistinctErrorLog to be US-ASCII rather than UTF-8 for compatibility with native driver.
  • Run slow tests daily in CI.
  • add GNU_SOURCE to clock for native builds on CentOS.
  • Upgrade to Agrona 1.3.0.
  • Upgrade to SBE 1.16.1.
  • Upgrade to JUnit 5.6.0.

Java binaries can be found here...

1.25.0

12 Jan 19:38
Compare
Choose a tag to compare
  • Where possible only weave in logging hooks when enabled in the Java driver. This can help performance for those who are only logging a few events.
  • Add ability to log the control channel responses from the Archive.
  • Fix issue with truncating recordings when truncate position equals stop position and start of segment to ensure file is deleted.
  • Fix issue with unaligned access to fields in LossReport.
  • Introduce interceptor bind framework to C driver for supporting loss testing, logging, and media layers other than BSD sockets.
  • Apply system tests to C driver when running in CI. When apply this a number of bugs got fixed in the C media driver.
  • Move CI from Travis to GitHub Actions and test on Windows, Linux, and OSX.
  • Support for agent logging in the C driver to file to match Java with the aeron.event.log.filename.
  • Support for adding checksums to archive recordings as CRCs which can be verified to detect file corruption.
  • Add support for applying and verifying checksums to recordings via ArchiveTool.
  • Add support for fixing recordings after after a system crash running an Archive.
  • Improve crash recovery for the archive when restarting.
  • Add cached clocks to C media driver to reduce the overhead of clock calls and improve performance, especially in cloud environments. Issue #606.
  • Fix thread local storage for Windows C media driver. PR #795.
  • Fixes for Windows C media driver. PR #794.
  • Improve EOS reporting in Image.toString() method. PR #792.
  • Fix recovery of stop position in crashed archive when start position was non-zero.
  • Provide API for for features that existed in CatalogTool in new ArchiveTool.
  • Don't linger replay publications in ReplayMerge so resources can be reclaimed sooner.
  • Default warning of Aeron direction existing on media driver start to false.
  • Add poll support to C media driver on Windows. PR #784.
  • Name log buffers based on correlation id.
  • Provide timestamp with stacktraces in default client error logger. PR #774.
  • Reject concurrent publications that specify init-term-id, term-id, and term-offset. PR #773.
  • Add sample illustrating how to build an index and basic time series on a recording that is also replicated in IndexedReplicatedRecording.
  • Improve performance for getting Header.position() in Java fragment handler.
  • Add BasicAuthenticator to C++ archive client samples.
  • Fix issue with configuring threading mode in C media driver. Issue #785.
  • Improve validation when extending recordings in the archive.
  • Add taggedReplicate operation to the archive for replicating a stream with provided tags so an external subscription can follow along.
  • Don't update the recording position in the archive if an exception occurs during a write. Previous behaviour could have erroneously reported progress when disk was full or underlying storage failure.
  • Fix issue in C media driver when a subscription could have go away yet the publication considered it was still connected.
  • Fix issue with incremental build dependencies. PR #762.
  • Fix recording events enabled property name.
  • Add authentication support to C++ archive client.
  • Upgrade to Agrona 1.2.0.
  • Upgrade to SBE 1.16.0.
  • Upgrade to JUnit 5.6.0-RC1.
  • Upgrade to Checkstyle 8.28.
  • Upgrade to HdrHistogram 2.1.12.
  • Upgrade to ByteBuddy 1.10.5.
  • Upgrade to Gradle 6.0.1.
  • Upgrade to javadoc-links 4.1.6.
  • Upgrade to Mockito 3.2.0.
  • Upgrade to gtest 1.10.0.
  • Upgrade to HdrHistogram_c 0.9.12.

Java binaries can be found here...

1.24.0

24 Nov 21:09
Compare
Choose a tag to compare
  • Add bi-directional version identification to the archive network protocol
  • Add support for authenticated sessions to the archive.
  • Support setting of session-id on publications in the C media driver. Issue #623.
  • Fix setting of initial position on an exclusive publication in the C driver when the initial position is beyond the first term. Issue #750.
  • Allow for archive error log to be stored in archive mark file when running out of process from a media driver.
  • Trim down unneeded dependencies in agent and all shadow JARs.
  • Clean up allocated resources in C++ and Java clients when URI errors occur.
  • Add boundedPoll to Image for C++ and Java. Issue #744.
  • Only include what is used in C++ publication headers. Issue #743.
  • Provide unique type ids to error counters. Issue #741.
  • Add new archive control messages to agent logging and improve overall agent performance.
  • Fix pointcut for Archive control message logging. Issue #740.
  • Close files in Windows C++ client to prevent memory leak. Issue #737.
  • Improve the performance for MDC dynamic mode in the Java driver.
  • Set javadoc encoding to UTF-8.
  • Improve validation of channel URIs for endpoint, control, tags, and distinguishing characteristics in both C and Java drivers.
  • Fix calculation for archive truncate when offset is beyond first term in a segment.
  • Check for reentrant calls when in Archive callbacks and throw an exception if detected.
  • Change sample scripts to use the aeron-all JAR as a better example.
  • Upgrade to javadoc-links 4.1.4.
  • Upgrade to Build Scan 3.0.0.
  • Upgrade to Shadow 5.2.0.
  • Upgrade to ByteBuddy 1.10.2.
  • Upgrade to SBE 1.15.0.
  • Upgrade to Agrona 1.1.0.

Java binaries can be found here...

1.23.1

06 Nov 18:01
Compare
Choose a tag to compare
  • Correct bug when setting MediaDriver.Context.rejoinStream which set reliableStream property by mistake and update configuration output dump.
  • Add bind address and port to channel endpoint counter label to help with debugging connections.
  • Fix narrowing type conversion in C++ client for subscription images. PR #726.
  • Add progress checks to ReplayMerge and a new terminal state of FAILED which is entered on exception or lost connection to the archive.
  • Track close following connections with MDS without timing them out which can help with ReplayMerge.
  • Support manual control on MDC not requiring the control address:port to be specified so it can be automatically assigned.
  • Add ability to disable the recording events publication in the archive to save resources when it is not required.
  • Add protocol version of the server to the connect response for archive clients.
  • Upgrade to SBE 1.14.1.
  • Upgrade to Agrona 1.0.11.

Java binaries can be found here...

1.23.0

27 Oct 18:02
Compare
Choose a tag to compare
  • Support the separate configuration of idle strategies for the replay and recording agent in the archive when running dedicated threading mode.
  • Improve ownership tracking for subscriptions and images in C++ client.
  • Improve matching of tagged channels
  • Increase archive storage version to 2.0.0 which requires the use of migration tool for existing archives.
  • Add operations to purge and restore the history of a recording in the archive.
  • Add the ability to query start position for a recording.
  • Add Image specific fragment assemblers for C++ client.
  • Reduce cacheline padding to save on memory footprint.
  • Fix double delete in Aeron destructor. Issue #717.
  • C++ client refinements. PR #716.
  • Upgrade to javadoc-links 4.1.3.
  • Upgrade to Gradle 5.6.3.
  • Upgrade to Checkstyle 8.25.
  • Upgrade to SBE 1.14.0.
  • Upgrade to Agrona 1.0.9.

Java binaries can be found here...