All Versions
29
Latest Version
Avg Release Cycle
25 days
Latest Release
1501 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v1.31.1 Changes
November 02, 2020- 🛠 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 theDistinctErrorLog
. - 👌 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...
-
v1.31.0 Changes
October 14, 2020- 🏁 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 thereplayDestination
into thereplayChannel
to simplify configuration. - 👌 Support using a port of
0
on the replay destination forReplayMerge
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...
-
v1.30.0 Changes
September 20, 2020- ➕ Add hooks so ATS (Aeron Transport Security) can be loaded as a premium feature on the C media driver. Issue #203.
- 🏁 Numerous improvements for the native driver on Windows.
- Further refinement and additions to the C client which is currently at preview status.
- ✂ Remove a number of data dependent loads caused by indirection to reduce latency outliers.
- 👌 Improve logic for expansion of
BufferBuilder
for fragmented messages to be correct at extremes and to be more efficient. - Set ANY ADDR to correct protocol family for endpoint based on control when IPv6.
- Scope Cluster Backup counters by cluster id.
- 👌 Improve Archive client connect error messages.
- ➕ Add deadline checking to C++ Archive client connect.
- 👌 Improve the efficiency of counter searching.
- ➕ Add extra validation for the relationships between timeouts.
- 🔄 Change tracking of untethered subscriptions so the bottom 1/4 rather then 1/8 of the window is used to make for easier eviction.
- ➕ Add registration and owner id to counters to help avoid ABA issues and to aid monitoring.
- ⚡️ Avoid updating the commit position counter when the consensus module is closed.
- 👌 Improve active transport tracking to be more timely and accurate.
- 👉 Make use of cached clocks when referencing counters to reduce system call overhead.
- 👌 Improve
ReplayMerge
tests to show a better example of usage. - ➕ Add driver and hostname to re-resolution counter for Java and C media drivers.
- 🛠 Fix memory corruption with driver naming resolution events in C media driver.
- 🛠 Fix dynamic agent dissector logging for C media driver.
- 👌 Improve liveness tracking for channels to reduce overhead and false sharing in the Java Driver.
- ➕ Add a
ChannelUriStringBuilder.toString()
method. - 🚚 Provide a registration id on the add and remove handler methods in clients so they can be removed by the registration id and not rely on the pointer or reference to the callback.
- 👍 Allow the setting of port 0 on Archive and Cluster control response channels for clients so they are automatically allocated from the ephemeral range.
- 👌 Improve native code use of atomics across all platforms and especially on Windows.
- 👌 Improve error messages in the native driver to help indicate which is the offending command and URI.
- Auto resize the Archive Catalog when full so the Archive does not need shutdown and manually extended.
- 👌 Improve startup code for all clients finding a running media driver which is racing to start at the same time.
- 👌 Support the C++ Archive client on Windows.
- Set CMake 3.6.1 as the min required version.
- ⬆️ Upgrade to JUnit 5.7.0.
- ⬆️ Upgrade to HdrHistogram_c 0.11.1.
- ⬆️ Upgrade to Version 0.33.0.
- 💅 Upgrade to Checkstyle 8.36.
- ⬆️ Upgrade to Gradle 6.6.1.
- ⬆️ Upgrade to Mockito 3.5.10.
- ⬆️ Upgrade to ByteBuddy 1.10.14.
- ⬆️ Upgrade to BND 5.1.2.
- ⬆️ Upgrade to SBE 1.20.2.
- ⬆️ Upgrade to Agrona 1.7.2.
Java binaries can be found here...
-
v1.29.0 Changes
July 21, 2020- Further refinement and additions to the C client which is currently at experimental status.
- 👌 Improve error messages when parsing URI params.
- 🛠 Fix application of sparse terms in Java Media driver when not used on a per channel basis.
- ➕ Add support for session based subscriptions on IPC and spies to the C media driver.
- 👉 Use
ssc
(Spies Simulate Connection) only in cluster when membership size is 1. This avoids the leader racing ahead of followers which are catching up and a number of cases where the start of a recording can be missed. - ➕ Add the ability to have spies simulation connection (ssc) configured on a per stream basis for both Java and C media drivers.
- 🛠 Fix some false sharing issued introduced for channel re-resolution checking to give a tighter latency distribution.
- ➕ Add state checks to Cluster operations so services do no use features at inappropriate times.
- 🏗 Rework build script to help IDEA recognise generated classes and not give false compilation errors.
- 🚤 Significantly improve throughput of C media driver when used with the Solarflare ef_vi premium extension to provide the best latency and throughput possible.
- 🛠 Fix short send counting in C media driver.
- 🔄 Change Archive session workers to behave more like normal Agents so that stack traces are more informative when debugging.
- 👌 Improve error handling and cluster elections when dynamic membership is being used and increase test coverage.
- 👌 Improve session checks when re-adding a publication with the same session id.
- Refinements to Cluster Backup.
- 🔄 Change defaults for throughput tests to use 8k rather than 16k MTUs to better fit with jumbograms.
- Close recording Archive recording subscriptions with
autoStop = true
that have an error on first image. - Detect Archive errors in Cluster so waiting operations can abort and be retried.
- 🛠 Fix
aeron_ftruncate
on Windows for native driver so it behaves more like Linux. This addresses races with client and driver starting at the same time which can result in a corrupt CnC file. - Avoid int overflow with Cluster snapshots greater than 2GB in length. PR #959.
- 🛠 Fix C++ client compile for CentOS 7 with GCC 4.8.5.
- ➕ Add flow control (fc) and group tag (gtag) URI params to Archive stripped channels.
- 🚤 Configurable buffer length for Archive record and replay file operations to control batch size via
aeron.archive.file.io.max.length
. New default shows a marked increase in throughput and reduced latency in all our tests. - ✅ Capture logs from failed Cluster tests to aid debugging.
- 🌲 Agent logging for untethered subscription state changes in Java and C media driver.
- 🌲 Expanded agent logging for archive activities to aid debugging.
- 🛠 Fix segfault in C media driver if transport cannot bind.
- ➕ Add Java 14 to CI.
- ➕ Add native sanitize builds to CI.
- ⬆️ Upgrade to Versions 0.29.0.
- 💅 Upgrade to Checkstyle 8.34.
- ⬆️ Upgrade to Mockito 3.4.4.
- ⬆️ Upgrade to BND 5.1.1.
- ⬆️ Upgrade to ByteBuddy 1.10.13.
- ⬆️ Upgrade to HdrHistogram 0.11.0 for C.
- ⬆️ Upgrade to Gradle 6.5.1.
- ⬆️ Upgrade to SBE 1.19.0.
- ⬆️ Upgrade to Agrona 1.6.0.
Java binaries can be found here...
-
v1.28.2 Changes
May 28, 2020- 🛠 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...
-
v1.28.1 Changes
May 27, 2020- 🛠 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...
-
v1.28.0 Changes
May 25, 2020- 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...
-
v1.27.0 Changes
April 01, 2020- 🔧 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...
-
v1.26.0 Changes
March 04, 2020- ➕ 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...
- ➕ Add correlation-id to
-
v1.25.1 Changes
January 21, 2020- 🐎 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...