Skip to content

Releases: real-logic/aeron

1.4.1

25 Aug 15:55
Compare
Choose a tag to compare
  • Update the aeron-archive module to Maven Central as part of the build.
  • Improve C driver build when OS features are not available so it degrades more gracefully.
  • Tidy up of media driver configuration and added Javadoc. Note that if you used Context.dirsDeleteOnStart(boolean) for testing that it has been renamed to Context.dirDeleteOnStart(boolean).
  • Add configuration option so that high resolution timers can be enabled on Windows.
  • Fix issue with term buffer length of 1GB. Issue #388.

Java binaries can be found here...

1.4.0

21 Aug 20:42
Compare
Choose a tag to compare
  • Native media driver written in C for greater throughput on Linux. Get started here....
  • Archive service in Java to support the recording and replay of message streams. Get started here....
  • Improved AeronStat for running in a Windows console and added delay param for controlling the update cycle in seconds.
  • Handle race condition on driver start when checking if it is active yet. Issue #385.
  • Update FlowControl API to support a shouldLinger method and EOS parameters to allow for faster clean up of resources.
  • Encapsulate buffer and length into a struct for atomic update of images under a subscription in C++. Issue #383.
  • Add Subscription::controlPoll to C++ client.
  • C++ client was not going round robin on the images under a subscription. Issue #381.
  • Added AgentInvoker to C++ client for removing the need for the client conductor thread.
  • Fix issues with publications being unblocked when clients are closing and creating new subscriptions. Issue #377.
  • Add Publication.MAX_POSITION_EXCEEDED return code from offer for when termId can wrap due to using small term buffer lengths.
  • Add shared_ptr for LogBuffer saved in Publication and ExclusivePublication to keep mapping around while in scope. Issue #371.
  • Rework Java client to better support timeouts and closing from other threads to help avoid segfaults. Issue #371.
  • Publications store registrationId and correlationId with the ability to call Publication.isOriginal() to determine if this is the first publication added for a given channel and streamId on a driver.
  • Move access to the AgentInvoker from Aeron.Context to Aeron on the client and MediaDriver.Context to MediaDriver.
  • Fix alignment types in native buffers for supporting processors which require alignment. Issue #359.
  • Counters now have labels in US_ASCII rather than UTF-8 to be more efficient as they are restricted to US_ASCII anyway.
  • Image.joiningPosition() has been renamed to Image.joinPosition().
  • ByteBuffers in Subscription and Image polling callbacks now have offsets the same as termBuffer offsets so the ByteBuffer can be used directly.
  • Stricter validation of channel URI parameters and new classes for client usage in ChannelUri and ChannelUriStringBuilder.
  • Reduce object allocations when cycling streams in Java media driver.
  • Add Image.isEndOfStream() for fast detection of stream end.
  • Add direct ByteBuffer support to FragmentAssemblers to avoid the need for copying of received messages before sending on the an NIO channel.
  • Upgrade to Agrona 0.9.7.
  • Upgrade to SBE 1.7.1.
  • Upgrade to Mockito 2.8.47.
  • Upgrade to Byte Buddy 1.6.14.
  • Upgrade to Checkstyle 8.1.
  • Upgrade to sevntu-checks:1.24.1.
  • Upgrade to Gradle 4.1.

Java binaries can be found here...

1.3.0

14 May 08:56
Compare
Choose a tag to compare
  • Fixed issue with a Subscription being closed and rapidly reopened on the same streamId and channel.
  • Add ThreadingMode.INVOKER to the driver so no threads are started and the media driver can be invoked by the client for its duty cycle. Example in the Archiver.
  • Added system property that allows TCP_MODE to be enabled on CUBIC congestion control.
  • Throughput and latency improvements on the receiver side when interacting with NIO DatagramChannels.
  • Add Header.context() member which contains the Image for use in subscriber callbacks.
  • Allow for client thread and lock to be elided when used in a low resource environment where the client will invoke the client duty cycle. Example can be found in the Archiver.
  • Notify that a new Image is available before it is added to the Subscription so setup actions can be taken.
  • Fix Ping samples for messages larger than MTU.
  • Numerous improvements to the performance and GC overhead of creating and releasing connections.
  • Add Image.joiningPosition().
  • Avoid use of std::function for performance in C++.
  • Add ExclusivePublication support to C++.
  • Close file descriptor after mapping an existing file in C++. Issue #339
  • Upgrade to Checkstyle 7.7.
  • Upgrade to Agrona 0.9.6.

Java binaries can be found here...

1.2.5

12 Apr 20:53
Compare
Choose a tag to compare
  • Make ExclusiveBufferClaim.flags() consistent with Header.flags().
  • Move responsibility for closing channel endpoints on shutdown from the driver-conductor to sender and receiver as appropriate.
  • Don't wait for Receiver to close a channel endpoint within the driver conductor. Issue #338.
  • Remove use of RandomAccessFile so that only FileChannels are used to reference files.
  • Improve efficiency of startup.
  • Upgrade to Agrona 0.9.5.
  • Upgrade to Mockito 2.7.22.
  • Upgrade to Gradle 3.5.

Java binaries can be found here...

1.2.4

06 Apr 17:21
Compare
Choose a tag to compare
  • Update CnC file to accommodate counters with labels up to 380 bytes. This bumps the CNC_VERSION so all clients and the driver on the same machine need to be upgraded at the same time.
  • Truncate log buffers when a stream is closed so space can be reclaimed as soon as possible.
  • Add Image.controlledPeek to peek ahead into a stream without advancing the subscriber position.
  • Improve the efficiency of Aeron startup and shutdown.
  • Back pressure a Publication as soon as its timeout is triggered due to not receiving status messages so that low throughput connections signal NOT_CONNECTED sooner. Also applies to IPC when all Subscriptions are closed.
  • Add per Subscription callbacks for notification of Image availability and unavailability.
  • Make media driver conductor more efficient so it can deal with a higher number of connected streams.
  • Add the ability to create an ExclusivePublication with initial state set so it can replay existing archived data.
  • Add ExclusivePublication for higher throughput single threaded publisher.
  • Allow the Aeron client to start before the media driver when an existing CnC file is present.
  • Clean up Aeron.Context if an error occurs when trying to establish a connection with the media driver.
  • Add Aeron.nextCorrelationId().
  • Avoid a recursive close in the Aeron Java client when a timeout occurs.
  • Upgrade to sevntu-checks 1.23.1.
  • Upgrade to Checkstyle 7.6.1.
  • Upgrade to Byte Buddy 1.6.12.
  • Upgrade to Mockito 2.7.21.
  • Upgrade to Agrona 0.9.4.

Java binaries can be found here...

1.2.3

02 Mar 18:29
Compare
Choose a tag to compare
  • Fix bug with managing the lifetime of Subscriptions to IPC Publications when a publication is added and removed multiple times in quick succession without break on the same stream id.
  • Improvements to C++ client for building on Windows.

Java binaries can be found here...

1.2.2

01 Mar 17:08
Compare
Choose a tag to compare
  • Fix bug with IPC Subscriptions being linked multiple times when Publication added from different clients that match.
  • Transition IPC Publications to inactive as soon as the Publication reference count reaches zero.

Java binaries can be found here...

1.2.1

28 Feb 18:26
Compare
Choose a tag to compare
  • Fix bug with IPC Publications going NOT_CONNECTED with very slow subscribers that are still connected.
  • Grow fragment assembly buffer using the golden ratio rather than doubling on a Subscription.
  • Improve Javadoc for Multi-Destination-Cast params.
  • Upgrade to SBE 1.6.0.

Java binaries can be found here...

1.2.0

23 Feb 11:15
Compare
Choose a tag to compare
  • Multi-Destination-Cast for multicast like semantics over multiple UDP unicast streams.
  • Linger networked Publications that have spies until the spies have caught up with the sender position.
  • Manage Image availability and Subscriptions for IPC in the same way as for network streams.
  • Performance improvements from fixing a few false sharing issues.
  • Fix network frame logging with debugging agent.
  • Fix intermittent system tests on Windows.
  • Make the Java client more robust to misuse.
  • Windows C++ compilation fixes.
  • Be more strict with validating client parameters before mutating state.
  • Ability to set the MTU length on individual UDP streams.
  • Upgrade to Checkstyle 7.5.1.
  • Upgrade to Byte Buddy 1.6.9.
  • Upgrade to Mockito 2.7.9.
  • Upgrade to Agrona 0.9.3.

Java binaries can be found here...

1.1.0

23 Jan 17:50
Compare
Choose a tag to compare
  • Numerous small performance improvements.
  • Fix bug with publications going NOT_CONNECTED because nano time was used rather than the epoch clock.
  • Ability to subscribe to a stream as reliable=false which enables gaps being filled without invoking the reliable recovery process.
  • Loss Reporting by stream for monitoring.
  • OSI layer 4 congestion control/avoidance service which can optionally be enabled on congested networks.
  • Support for running 32-bit C++ clients on ARM.
  • Rework of loss detection to make it more efficient.
  • Ability to measure RTT added to the network protocol.
  • Upgrade to Mockito 2.6.8.
  • Upgrade to Checkstyle 7.4.
  • Upgrade to sevntu-checks 1.23.0.
  • Upgrade to ByteBuddy 1.6.5.
  • Upgrade to Agrona 0.9.2.
  • Upgrade to Gradle 3.3.

Java binaries can be found here...