Skip to content

Aeron Premium Change Log

Dmytro Vyazelenko edited this page Dec 9, 2024 · 9 revisions

Aeron Data Retention Regulator

0.10.0 (2024-11-01)

Changelog

  • Fix a bug where RecordingMetadata would be incorrectly populated (introduced in 0.7.0):
    • maxRecordedPosition would be correct only for stopped recordings, -1 for active ones
    • startTimestamp would be the maxRecordedPosition
    • stopTimestamp would be the startTimestamp Which would have the following effects:
    • RetainLengthPolicy would always retain all active recordings
    • DeleteSegmentsAfterPeriodPolicy would not delete any segments for active recordings
    • DeleteRecordingsAfterPeriodPolicy would delete after period calculated from recording start instead of stop, unless recording is active, then it would fail to delete
  • Upgrade Aeron to 1.46.7.
  • Upgrade Agrona to 1.23.1.

0.9.0 (2024-08-30)

Breaking changes

  • Java 17 or newer is now required.

Changelog

  • JavaDoc jars are now published.
  • Upgrade to Aeron 1.46.0
  • Upgrade to Agrona 1.23.0

0.8.0 (2024-08-30)

Changelog

  • Upgrade to Aeron 1.45.0
  • Upgrade to Agrona 1.22.0

0.7.0 (2024-08-29)

Non-breaking changes

  • Make testing policy trees easier in downstream projects without extensive mocking:
    • Allow creation of SegmentFileBoundary
    • Allow creation of RecordingMetadata
  • Make dry run output more precise by avoiding the calculation of new start positions before the existing start position in the built-in policies.

0.6.0 (2024-08-14)

Non-breaking changes

  • Introduced a new composite policy:
    • RetainMinOfPolicy: combines sub-policies by retaining the minimum of its inner policies.
  • Fixed a bug where DeleteRecordingsAfterPeriodPolicy gave the wrong retention instruction for live recordings. Thankfully, the purge would always fail, as the recording was live. A test has been added to prevent regressions.

0.5.0 (2024-08-01)

Non-breaking changes

  • Introduce a "dry run" mode, where the tool does not delete any data, but logs what it would have done. This can be useful for testing policies.

  • Change the default controlResponseStreamId we use from 20 to 20240712 to reduce the chances of collisions with other AeronArchive clients.

0.4.0 (2024-07-24)

Non-breaking changes

  • Make it easier to configure the controlReponseStreamId on the AeronArchive.Context that the DRR uses.
  • Avoid attempts to detach partial (i.e., not complete) segment files in DeleteSegmentsAfterPeriodPolicy if they have "expired".

0.3.0 (2024-07-19)

Breaking changes

  • Renamed DeleteAfterPeriodPolicy to the more-specific DeleteRecordingsAfterPeriodPolicy

Non-breaking changes

  • Introduced new policies:
    • DeleteSegmentsAfterPeriodPolicy: detaches and deletes recording segment files that have not been modified for some period of time.
    • MatchingLogRecordingPolicy: applies an inner policy to the Consensus Module's log recording.

0.2.0 (2024-07-19)

Noteworthy

Initial release with the following built-in data retention policies:

  • Leaf policies:
    • RetainEnoughDataForRecoveryPolicy: keeps the last N snapshots and the log following the earliest of these snapshots available for cluster node recovery.
    • RetainLengthPolicy: keeps at least the last N bytes of data. It will detach and delete recording segments before the last N bytes.
    • DeleteAfterPeriodPolicy: deletes recordings that stopped some period of time ago.
  • Composite policies:
    • MatchingStreamsPolicy: applies an inner policy to recordings that match a channel URI and/or stream identifier.
    • RetainMaxOfPolicy: safely combines policies, e.g., to retain X snapshots worth of cluster data and Y bytes of data per recording, by retaining the maximum of its inner policies.
    • CascadePolicy: accepts a sequence of policies. It will try each policy in turn and apply the first policy that "covers" a recording, i.e., that has an opinion on what the extent of the recording should be.

Aeron Cluster Standby

1.46.1 (2024-10-10)

Changelog

  • [Java] Add overload and documentation to better explain transition operation behaviour.
  • [Java] Ensure that sessions from snapshots are correctly loaded in standby.
  • [Java] Use BitUtil.generateRandomisedId() to generate unique replay session-id.
  • [Java] Upgrade to Aeron 1.46.5.
  • [Java] Upgrade to Agrona 1.23.1.
  • [Java] Upgrade to SBE 1.33.1.

1.46.0 (2024-08-25)

Breaking changes

  • JDK 17 is required for compiling and running!

Changelog

  • [Java] Ensure cluster mark file is closed during reset.
  • [Java] Add PremiumClusterTool operation for resetting a Cluster Standby by moving the recording log out of the way.
  • [Java] Debounce cluster standby control toggle signals.
  • [Java] Add 'errors' command to Premium Cluster tool to display errors from the Transition Module and Standby markfiles
  • [Java] Fix the 'describe-transition' command so it reads from the correct directories.
  • [Java] Use alternative implementation for next session id that avoid conflicts between standbys.
  • [Java] Rename counters to have consistent case with similar counters
  • [Java] Fix closed session leak in ClusterStandby.
  • [Java] Close sessions after transition.
  • [Java] Upgrade to Aeron 1.46.0.
  • [Java] Upgrade to Agrona 1.23.0.
  • [Java] Upgrade to SBE 1.33.0.
  • [Java] Upgrade to Gradle 8.10.
  • [Java] Upgrade to ByteBuddy 1.15.0.
  • [Java] Upgrade to Shadow 8.3.0.
  • [Java] Upgrade to bnd 7.0.0.
  • [Java] Upgrade to Mockito 5.12.0.
  • [Java] Upgrade to AsciiDoctor 2.5.13.
  • [Java] Upgrade to JGit 6.10.0.202406032230-r.
  • [Java] Force ASM 9.7.

1.44.2 (2024-05-21)

Changelog

  • Fix a bug where sessions aren't closed (e.g., due to inactivity) after TransitionModule transitions from STANDBY to CONSENSUS due to some missing state.

Aeron Insights

N/A (N/A)

Aeron Transport Bindings (Kernel Bypass & Security)

1.46.1 (2024-10-10)

Changelog

  • [C] Update to match new concurrency primitives in Aeron OSS.
  • [Java] Upgrade to Aeron 1.46.5.
  • [Java] Upgrade to Agrona 1.23.1.
  • [Java] Upgrade to SBE 1.33.1.

1.46.0 (2024-08-25)

Breaking changes

  • JDK 17 is required for compiling and running!

Changelog

  • [DPDK] Fix off-by one error when computing the subnet mask. For example, for IP address 10.192.160.0/19 the mask was computed as 255.255.192.0 whereas the correct value is 255.255.224.0.
  • [DPDK] Allow gateway and local address to be left as empty strings for AWS.
  • [DPDK] Explicitly enable only supported network drivers during a build.
  • [DPDK] Upgrade to DPDK 24.07.
  • [ATS] Upgrade to OpenSSL 3.3.1.
  • [Java] Upgrade to Aeron 1.46.0.
  • [Java] Upgrade to Agrona 1.23.0.
  • [Java] Upgrade to SBE 1.33.0.
  • [Java] Upgrade to Gradle 8.10.
  • [Java] Upgrade to ByteBuddy 1.15.0.
  • [Java] Upgrade to Shadow 8.3.0.
  • [Java] Upgrade to bnd 7.0.0.
  • [Java] Upgrade to Mockito 5.12.0.
  • [Java] Upgrade to AsciiDoctor 2.5.13.
  • [Java] Upgrade to JGit 6.10.0.202406032230-r.
  • [Java] Force ASM 9.7.

Aeron Transport Selector

0.2.0 (2024-01-15)

Breaking changes

A client using this version won't be able to connect to aeronsd using an older version.

Changelog

  • aeronsd will now flush stdout after each message if not running in a terminal.
  • aeronsd will now gracefully terminate on SIGTERM in addition to SIGINT, and both will result in 0 exit status.
  • Introduced Java client.
  • Improved error handling when accepting connections.
  • Tightened up validation to prevent multiple Selector clients being created with one Aeron client.

0.1.0 (2024-01-03)

Noteworthy

Initial release.