-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
Ra v2.16.0 #12713
Draft
kjnilsson
wants to merge
4
commits into
main
Choose a base branch
from
ra-2.16.0
base: main
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
Ra v2.16.0 #12713
Conversation
This file contains 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
kjnilsson
force-pushed
the
ra-2.16.0
branch
7 times, most recently
from
December 2, 2024 14:29
c820291
to
115eb3a
Compare
mkuratczyk
force-pushed
the
ra-2.16.0
branch
from
December 11, 2024 17:24
83bb7f0
to
a2de01e
Compare
kjnilsson
force-pushed
the
ra-2.16.0
branch
2 times, most recently
from
January 6, 2025 15:04
d5e6df0
to
eed6294
Compare
kjnilsson
force-pushed
the
ra-2.16.0
branch
2 times, most recently
from
January 15, 2025 09:54
3c6be7e
to
562756c
Compare
kjnilsson
force-pushed
the
ra-2.16.0
branch
3 times, most recently
from
January 23, 2025 10:24
70590f2
to
1c4d221
Compare
This version of Ra contains a substantially refactored Ra log implementation that provides higher throughput and lower memory use in serveral scenarios. New features: * `log_ext` new effect type that instead of immedately reading entries from the log it will instead provide a read plan for any entries only located in segments. * Machine version upgrades can now be be delayed until all members are confirmed to support the new version. This will avoid potential consumption pauses during upgrades.
This offloads the work of reading messages from on-disk segments to the interacting process rather than doing this blocking, performance affecting work in the ra server process. QQ: ensure opened segments are closed after some time of inactivity Processes that havea received messages that had to be read from disks may keep a segment open indefinitely. This introduces a timer which after some time of inactivity will close all opened segments to ensure file descriptors are not kept open indefinitely.
from rabbit_fifo version 0. The same was also implemented for the stream coordinator. QQ: avoid dead lock in queue federation. When processing the queue federation startup even the process may call back into the ra process causing a deadlock. in this case we spawn a temporary process to avoid this.
And be less confusing around the arguments that add_member/4 actually takes.
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 version of Ra contains a substantially refactored Ra log implementation that provides higher throughput and lower memory use in several scenarios.
Changes:
QQ: Use new
log_ext
effectThis offloads the work of reading messages from on-disk segments
to the interacting process (typically a session or channel process)
rather than doing this blocking, performance affecting work in the
Ra server process.
Ensure opened segments are closed after some time of inactivity
Processes that have received messages that had to be read from disks
may keep a segment open indefinitely. This introduces a timer which
after some time of inactivity will close all opened segments to ensure
file descriptors are not kept open indefinitely.
Use
initial_machine_version
config to avoid initialising from rabbit_fifo version 0.Use
initial_machine_version
config to avoid initialising from rabbit_stream_coordinator version 0.Avoid dead lock in queue federation.
When processing the queue federation startup even the process
may call back into the Ra process causing a deadlock. in this
case we spawn a temporary process to avoid this.