-
Notifications
You must be signed in to change notification settings - Fork 898
Aeron Premium Change Log
Dmytro Vyazelenko edited this page Dec 9, 2024
·
9 revisions
- 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 themaxRecordedPosition
-
stopTimestamp
would be thestartTimestamp
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.
- Java 17 or newer is now required.
- JavaDoc jars are now published.
- Upgrade to Aeron 1.46.0
- Upgrade to Agrona 1.23.0
- Upgrade to Aeron 1.45.0
- Upgrade to Agrona 1.22.0
- Make testing policy trees easier in downstream projects without extensive mocking:
- Allow creation of
SegmentFileBoundary
- Allow creation of
RecordingMetadata
- Allow creation of
- Make dry run output more precise by avoiding the calculation of new start positions before the existing start position in the built-in policies.
- 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.
-
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 from20
to20240712
to reduce the chances of collisions with other AeronArchive clients.
- Make it easier to configure the
controlReponseStreamId
on theAeronArchive.Context
that the DRR uses. - Avoid attempts to detach partial (i.e., not complete) segment files in
DeleteSegmentsAfterPeriodPolicy
if they have "expired".
- Renamed
DeleteAfterPeriodPolicy
to the more-specificDeleteRecordingsAfterPeriodPolicy
- 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.
-
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.
-
- [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 replaysession-id
. - [Java] Upgrade to Aeron 1.46.5.
- [Java] Upgrade to Agrona 1.23.1.
- [Java] Upgrade to SBE 1.33.1.
- JDK 17 is required for compiling and running!
- [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.
- Fix a bug where sessions aren't closed (e.g., due to inactivity) after TransitionModule transitions from
STANDBY
toCONSENSUS
due to some missing state.
- [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.
- JDK 17 is required for compiling and running!
- [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 as255.255.192.0
whereas the correct value is255.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.
A client using this version won't be able to connect to aeronsd using an older version.
- 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.
Initial release.