-
Notifications
You must be signed in to change notification settings - Fork 946
[Java] New term buffer cleanup logic #1775
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
vyazelenko
wants to merge
63
commits into
aeron-io:master
Choose a base branch
from
vyazelenko:cleanup-buffer-improvements
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
[Java] New term buffer cleanup logic #1775
vyazelenko
wants to merge
63
commits into
aeron-io:master
from
vyazelenko:cleanup-buffer-improvements
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… memory does not get re-ordered with the `cleanupPosition` assignment.
…d up of an entire term before cleaning starts.
…e experience by the driver conductor thread. Use clean position to move publication limit forward.
…ancement so that it does not cross clean position's term.
… 1/8th of a term buffer or publication window (whichever is smaller). The reduced update frequency means less cache misses on the publisher side.
…ng data from a dirty buffer. Clean buffer in fixed 4KB chunks.
…vancing, i.e. as long as SMs are coming back and `snd-lmt` is advancing.
…nup-buffer-improvements
…e received above the current `rcv-hwm`.
…eceived above the current `rcv-hwm`.
mikeb01
reviewed
Apr 15, 2025
mikeb01
reviewed
Apr 15, 2025
mikeb01
reviewed
Apr 15, 2025
#include <stdint.h> | ||
#include "util/aeron_bitutil.h" | ||
|
||
#define AERON_TERM_CLEANER_TERM_CLEANUP_BLOCK_LENGTH (4096u) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use:
#define AERON_TERM_CLEANER_TERM_CLEANUP_BLOCK_LENGTH UINT32_C(4096)
To declare this as unsigned and use the appropriate system dependent suffix.
mikeb01
reviewed
Apr 16, 2025
mikeb01
reviewed
Apr 16, 2025
…ntent and better handle edge conditions.
…provements # Conflicts: # aeron-driver/src/main/c/aeron_ipc_publication.c # aeron-driver/src/main/c/aeron_network_publication.c # aeron-driver/src/main/java/io/aeron/driver/Configuration.java # aeron-driver/src/main/java/io/aeron/driver/IpcPublication.java # aeron-driver/src/main/java/io/aeron/driver/NetworkPublication.java # aeron-driver/src/test/java/io/aeron/driver/MediaDriverContextTest.java # aeron-driver/src/test/java/io/aeron/driver/NetworkPublicationTest.java
…provements # Conflicts: # .github/workflows/ci.yml # aeron-driver/src/main/c/aeron_publication_image.c
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following changes:
pub-lmt
advancing too much ahead to prevent it intersecting with a dirty term buffer:pub-lmt
can never end up in a dirty term.pub-lmt
is not allowed to be in a term adjacent to a dirty term if the clean position points to the start of a dirty term.PublicationImage
.pub-lmt
on every trip gain, i.e. every 1/8th of a term or one full publication window (whichever happens first).