Releases: real-logic/aeron
Releases · real-logic/aeron
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...
1.15.2
- Fix issue with length of channel not being taken into account when parsing commands in the C Media Driver which could lead to corrupt URI channel params.
- Add
Automatic-Module-Name
to help support modular Java applications using Aeron. Issue #627. - Reduce cache missing when handling loss in Java Media Driver.
- Relocate Byte Buddy in fat JAR to avoid clash with other needs for Byte Buddy such as Mockito.
- Upgrade to Byte Buddy 1.9.7.
- Upgrade to Mockito 2.24.0.
- Upgrade to SBE 1.12.1.
- Upgrade to Agrona 0.9.32.
Java binaries can be found here...
1.15.1
- Use unique schema ids to help detect stream miss-configuration between archive and cluster protocols, and allow for future extension.
- Additional validation of publication and subscription URI channel params.
- Experimental build of C Media Driver for Windows. PR #610.
- Fix segment length recorded in the Archive Catalog when term length greater than segment length. PR #619.
- Add support to C Media Driver for initialising a publication for replay at a given position.
- Shadow JAR in the correct versions of HdrHistogram and ByteBuddy into
aeron-all
. - Upgrade to Checkstyle 8.17.
- Upgrade to HdrHistogram_c 0.9.8.
- Upgrade to SBE 1.12.0.
- Upgrade to Agrona 0.9.31.
Java binaries can be found here...
1.15.0
- Correct order of
correlationId
andrelevantId
when reporting asynchronous messages back from the Archive. - Add
INVALID_EXTENSION
error code for requests to extend an existing recording when a new image that does not match. - Add checks to Archive client for use after close.
- Update Archive Catalog with
controlSessionId
andcorrelationId
when an existing recording is extended. - Have ownership for contexts pass to agent after successful start so the agent is responsible for close to help about seg faults with unmapped files. Contexts are now not
AutoClosable
so people are not tempted to use them in try-with-resources idioms. Issue #612. - Add checks to C++ client for use after close.
- Detect a broadcast buffer wrap when the client has been unresponsive for a long time and close the client.
- Notify client if the driver times them out so they can gracefully shutdown. Issue #611.
- Add support for human readable short form properties for configuring the C media driver. Issue #603.
- Parse interface and address URI parmas without using regex for portability and better performance in C media driver.
- Parse interface URI param without using regex for less allocation and better performance in Java media driver.
- Validate initial position when constructing a Channel URI.
- Upgrade to HdrHistogram 2.1.11.
- Upgrade to Shadow 4.0.4.
- Upgrade to SBE 1.11.0.
- Upgrade to Agrona 0.9.30.
Java binaries can be found here...