Skip to content
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 2.5.0 #7553

Merged
merged 2 commits into from
Mar 10, 2023
Merged

Ra 2.5.0 #7553

merged 2 commits into from
Mar 10, 2023

Conversation

kjnilsson
Copy link
Contributor

@kjnilsson kjnilsson commented Mar 9, 2023

This Ra release includes improvements to Ra server GC behaviour when receiving a lot of low priority commands with large binary payloads (e.g. quorum queue messages).

Practically this allows quorum queues to accept large amounts of messages in a more predicatble and performant manner.

This change also removes ra_file_handle cache that was used as a bridge between ra file operations and RabbitMQ io metrics. Lots of components in RabbitMQ such as streams and CQv2s do not record io metrics in the previous manner due to overhead incurred for every file io operation. These metrics are better inspected at the OS level anyway.

This Ra release includes improvements to Ra server GC behaviour when receiving a lot
of low priority commands with large binary payloads (e.g. quorum queue messages).

Practically this allows quorum queues to accept large amounts of messages in a more predicatble and performant manner.

This change also removes ra_file_handle cache that was used as a bridge between ra file operations and RabbitMQ io metrics. Lots of components in RabbitMQ such as streams and CQv2s do not record io metrics in the previous manner due to overhead incurred for every file io operation. These metrics are better inspected at the OS level anyway.
@michaelklishin michaelklishin added this to the 3.12.0 milestone Mar 10, 2023
@kjnilsson kjnilsson marked this pull request as ready for review March 10, 2023 09:11
@mkuratczyk
Copy link
Contributor

Link to full performance test results:
https://grafana.rabbitmq.com/goto/2zvsFH-4k?orgId=1

The original goal of this change was to address degradation under sustained publisher load without consumers - when the queue grew longer, its throughput quickly degraded. This has been resolved:

Screenshot 2023-03-10 at 12 13 56

Whit this PR, single queue (publisher+consumer) throughput is higher for all tested message sizes:
Screenshot 2023-03-10 at 12 15 46

In tests where an initial backlog is created and then consumers start (in the first test here - 10 consumers, in the second - SAC), this PR allows to recover publishing throughput quickly and provides much higher consumption rate in the SAC scenario:
Screenshot 2023-03-10 at 12 17 58

@michaelklishin michaelklishin merged commit 4a795b3 into main Mar 10, 2023
@michaelklishin michaelklishin deleted the ra-2.5.0 branch March 10, 2023 14:54
@mergify mergify bot mentioned this pull request Mar 10, 2023
michaelklishin added a commit that referenced this pull request Mar 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants