Skip to content

Releases: aeron-io/aeron

1.21.2

19 Aug 17:13
Compare
Choose a tag to compare
  • 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

14 Aug 20:00
Compare
Choose a tag to compare
  • 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

02 Aug 17:16
Compare
Choose a tag to compare
  • 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 to Image 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

12 Jul 17:00
Compare
Choose a tag to compare
  • 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 Java AeronStat 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

26 May 17:44
Compare
Choose a tag to compare
  • Fix logging of cluster election events due to class loading clash with aeron agent.
  • Fix issue with snapshot on leader not recording which service message it had appended up to.
  • Upgrade to SBE 1.12.7.

Java binaries can be found here...

1.19.0

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

03 May 17:22
Compare
Choose a tag to compare
  • 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

28 Mar 16:41
Compare
Choose a tag to compare
  • 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 PortUnreachableExceptions 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

10 Mar 19:15
Compare
Choose a tag to compare
  • Remove deprecated Subscription EOS handlers and ExclusiveBufferClaim 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 and ChannelUriStringBuilder 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

16 Feb 18:08
Compare
Choose a tag to compare
  • 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...