Releases: aeron-io/aeron
Releases · aeron-io/aeron
1.21.2
- Add client close handler to C++ client which can be used to detect close after client/driver timeouts for cleanup. It will be called on any client close including the shared pointer going out of scope and will be called only once.
- Try to call all the unavailable handlers in Java and C++ clients regardless of how the client gets closed, especially in the case of timeouts.
- Add addition relevant fields to
Image.toString()
method for debugging. - Correct log position in some cluster event messages which had the potential to be wrong.
- Upgrade to SBE 1.13.2.
Java binaries can be found here...
1.21.1
- Enable timestamping of sequenced events in cluster at greater precision than milliseconds.
- Avoid seg faults by not incrementing error counters when starvation timeouts occur.
- Check for thread interrupt in spin loops so agents can be interrupted and tests can abort more cleanly.
- Coordinate agent shutdown in the Archive on timeout for a more clean shutdown.
- Detect timeouts due to resource starvation in Archive and Cluster and terminate to avoid seg faults.
- Allow the setting of an Aeron client in the Archive without an invoker.
- Upgrade to javadoc-links 3.8.4.
- Upgrade to SBE 1.13.1.
- Upgrade to Agrona 1.0.7.
Java binaries can be found here...
1.21.0
- Complete work on IPC messages from services and reliable timers for Cluster.
- Simplify logic in
Image.controlledPeek
methods and correct return value on closed on Java client. - Support OSGi manifest headers. PR #690.
- Add missing Javadoc to public classes.
- Add
AeronException.Category
enum to Aeron exceptions for Java and C++ by separating warn, error, and fatal categories of exception. - Ability to add and remove close handlers on Java Aeron client to avoid use after close and segfaults due to unmapped files.
- Check for Aeron client close in Archive due to starvation to avoid segfaults.
- Remove layer of indirection from
Subscription
toImage
in C++ client to help avoid cache misses. - Update licence references to https.
- Upgrade to Mockito 3.0.0.
- Upgrade to Checkstyle 8.23.
- Upgrade to javadoc-links 3.8.1.
- Upgrade to Gradle 5.5.1.
- Upgrade to SBE 1.13.0.
- Upgrade to Agrona 1.0.6.
Java binaries can be found here...
1.20.0
- Add pre-touch option for memory mapped files in clients to fault in pages to reduce latency spikes on first cycle around log buffers.
- Rework C++ client to share log buffer mappings between publications and subscriptions when possible to reduce mapping costs.
- Rework C++ client to manage images via
shared_ptr
to help avoid memory reclamation issues. Issue #467. - Rework management of C++ client resources to be more O(1) when reacting to events from the driver.
- Set error handler on Aeron client in Archive client when set. PR #687.
- Check for reentrant calls to Aeron client from C++ callbacks and call error handler if detected.
- Add
watch
option to JavaAeronStat
and separate out counter reader. PR #684. - Tighten up logic to avoid use of C++ Aeron client after close.
- Replace division operations with shifts where possible to improve performance on startup in Java implementation.
- Support adding and removing counters availability handlers after client connect and to support multiple handlers in Java and C++ clients.
- Add the ability to do archive replays bounded by a counter to Java and C++ implementations.
- Improve and expand Java and C++ samples.
- Some fixes for the Windows native build which is still experimental.
- Remove unused linger feature from flow control to reduce footprint and improve performance.
- Fix concurrency issue with buffer cleaning which could result in a stream locking up and being in a permanent back-pressure state.
- Add
stopAllReplays
operation to the Archive which can be on a specific recording or wildcarded to all recordings. - Don't treat explicit client closes as timeouts. PR #681.
- Limit resend window to half a term length to avoid unnecessary under runs.
- Add observed values in timeout exception messages. PR #680.
- Reduce allocation when using logging agent and improve its performance.
- Use more efficient clock implementations in C media driver.
- Use correct message encoder when sending a
stopReplay
to the archive. PR #676. - Correctly initialise send and clean positions on publications when a non-zero start is required in the C driver.
- Add semantic versioning to CnC files. Issue #624.
- Fix
Subscription::isConnected()
in C++ client. - Many improvements to Cluster which is not yet GA.
- Upgrade to Mockito 2.28.2.
- Upgrade to javadoc-links 3.7.5.
- Upgrade to Checkstyle 8.22.
- Upgrade to Shadow 5.1.0.
- Upgrade to SBE 1.12.8.
- Upgrade to Agrona 1.0.3.
Java binaries can be found here...
1.19.1
1.19.0
- Add support for clustered services to send reliable ingress back into the cluster over IPC to be sequenced into the log.
- Added
aeron.client.close.linger.duration
which can be set greater than the default of 0 to help clients in resource constrained environments, or long GC pause applications, from experiencing seg faults from unmapped files. - Close Java
Aeron
client when timeouts occur and delay before unmapping files to help prevent seg faults. - Add
dump
option toCatalogTool
to dump out full details including recorded stream data. PR #669. - Provide read only view of Archive Catalog. PR #668.
- Protect against contexts being used in multiple drivers or clients. PR #666.
- Add support for channel tags to C media driver. Issue #622.
- Make socket buffer config settings public for driver context.
- Upgrade to javadoc-links 3.6.4 to allow for offline build.
- Upgrade to hamcrest 2.1.
- Upgrade to SBE 1.12.6.
- Upgrade to Agrona 1.0.1.
Java binaries can be found here...
1.18.0
- Various improvements and fixes for Aeron Cluster. Elections are becoming robust and the API is firming up.
- Fix counter resource leak when cycling UDP publications with back pressure counters. PR #663.
- Add
tether
support for local flow control to Java and C media drivers. This allows a subscription to declare itself as a tether or not on local flow control. If not a tether then it can be left behind if it stops or cannot keep up. - C and Java media drivers can optionally print their configuration on startup.
- Greatly improved configuration for C media driver allowing configuration via properties files fetched from local file system or over HTTP, or via API for context. The list of files can be passed on the command line to
aeronmd
. - Include
session-id
in archive recording key regardless of using tags or not. - Abort Archive sessions if the response publication fails after successfully connected or when any other exception occurs during processing. This avoid infinite failure loop in the archive on some conditions.
- Improve Javadoc.
- Add channel param for indicating if
EOS
should be sent on close of publication or not. - Improve build of native driver on Windows.
- Output from ctest on failure for native build.
- Upgrade to io.freefair.javadoc-links 3.2.1.
- Upgrade to Checkstyle 8.20.
- Upgrade to ByteBuddy 1.9.10.
- Upgrade to Mockito 2.27.0.
- Upgrade to Gradle 5.4.1.
- Upgrade to SBE 1.12.5.
- Upgrade to Agrona 1.0.0.
Java binaries can be found here...
1.17.0
- Add a
BacklogStat
tool for inspecting the backlog in bytes for consumers of streams. PR #650. - Faster startup and build time on Windows.
- Reduce module warnings on Java 11.
- Change default archive recording progress event channel to dynamic MDC to avoid
PortUnreachableException
s that cause garbage. - Add the ability to terminate a Java or C media driver by sending it a command. Useful for testing in a mixed language environment.
- Fix issue with multi-destination subscriptions that are set up in advance. PR #649.
- Add sender back-pressure event counters per stream for monitoring.
- Improve
AsyncConnect
for cluster and archive clients and use it wrapped in the sync implementation. - Add
min
flow control strategy to the C Media Driver. - Improve
toString()
methods in Aeron wire protocol flyweights for reduced allocation and better performance. - Complete work on C++ Archive client.
- Change Stats tools to use read only file mapping for safety and better NUMA performance.
- Add back-off idle strategy to the C Media Driver.
- Add C++
LossStat
application. - Fix issues with Archive Catalog failing to load due to old version.
- Clean up native build for Windows.
- Complete work on
ReplayMerge
for both Java and C++ Archive clients. - Add
writev
support to SPSC C ring buffer. PR #644. - Add basic validation to configuration for client and unblock timeouts.
- Add event codes and support logging in archive and cluster for major events. PR #646.
- Upgrade Checkstyle DTD and apply checkstyle to method Javadoc.
- Use HTTPS in generated Javadoc links and fix warnings under Java 11 and OpenJDK.
- Report version numbers in conflict when connecting to archive or cluster.
- Upgrade to Mockito 2.25.1.
- Upgrade to Gradle 5.3.1.
- Upgrade to SBE 1.12.4.
- Upgrade to Agrona 0.9.35.
Java binaries can be found here...
1.16.0
- Remove deprecated Subscription
EOS
handlers andExclusiveBufferClaim
from Java and C++. - Provide the ability to ignore warning for Aeron direction existence in C Media Driver. Issue #639.
- Fix memory leak when adding and removing destinations for the C Media Driver.
- Include links when generating Javadoc.
- Add
ChannelUri
andChannelUriStringBuilder
to C++ for ease of use when with channels. - Add C++
BackoffIdleStrategy
. - Reduce object allocation in Java media driver startup.
- Provide the ability for the driver to print out all it configuration properties on start via
aeron.print.configuration=true
. - Clean up Java driver configurations so that all properties can be configured from system properties or context.
- Provide the ability to list active recording subscriptions on the archive so they can be tracked and closed when clients do not clean up gracefully.
- Handle race conditions when establishing control session connections to the archive when the same stream id and channel are used by multiple clients or over multicast.
- Check that messages are for the correct protocol communicating with the archive and cluster.
- Add experimental C++ client for Aeron Archive.
- Add experimental
ReplayMerge
for catching up to a live stream from an archive. - Add semantic version support to archive and cluster protocols.
- Upgrade to Mockito 2.25.0.
- Upgrade to Shadow 5.0.0.
- Upgrade to Gradle 5.2.1 and remove used of the now deprecated OSGI plugin.
- Upgrade to Checkstyle 8.18.
- Upgrade to SBE 1.12.3.
- Upgrade to Agrona 0.9.34.
Java binaries can be found here...
1.15.3
- Cluster refinements.
- Reset padding value on failed claim to C ring buffer. Issue #636.
- Add clang 6 debug build to Travis CI.
- Correct issue with archive and cluster mark files version so it is not tied to SBE schema and instead uses semantic versioning. Issue #638.
- Deal with multiple archive clients connecting on the same stream id and channel. PR #634.
- Cleanup of C++ client. PR #631.
- Upgrade to SBE 1.12.2.
- Upgrade to Agrona 0.9.33.
Java binaries can be found here...