Releases: real-logic/aeron
Releases · real-logic/aeron
1.28.2
1.28.1
1.28.0
- 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 onendpoint
orcontrol
so OS assigns the port without conflict and then make it available onPublication
orSubscription
via each getting a newlocalSocketAddresses()
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
, andbackoff
. - 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
- 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
- Add correlation-id to
ArchiveException
and provide the ability to get the last used correlation-id inAeronArchive
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 withArchiveTool
. - 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
- 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
- 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 newArchiveTool
. - 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
, andterm-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
- 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
toImage
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
- Correct bug when setting
MediaDriver.Context.rejoinStream
which setreliableStream
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 ofFAILED
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
- 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...