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

Faster implementation of rabbit_binding:recover/0 #3137

Merged
merged 1 commit into from
Jun 29, 2021

Conversation

mkuratczyk
Copy link
Contributor

For a large number of bindings, this implementation reduces rabbit_binding:recover/0
execution from minutes to seconds. rabbit_binding:recover/2 can still take minutes but it can be improved separately.

Before:

[debug] <0.9.0> Time to start RabbitMQ: 136651247 µs

After:

[debug] <0.222.0> rabbit_binding:recover/0 completed in 1.451836s
[debug] <0.436.0> rabbit_binding:recover/2 for vhost / completed in 51.545797s
[debug] <0.9.0> Time to start RabbitMQ: 83644782 µs

That's 136s to 83s for a test with 16k queues and 275k bindings.

For a large number of bindings, this implementation reduces the recovery
time from minutes to seconds. rabbit_binding:recover/2 is the second
operation that may take minutes but it can be improved separately.
Copy link
Contributor

@lhoguin lhoguin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved based on past discussions/suggestions and code review.

@michaelklishin michaelklishin merged commit a3e98c2 into master Jun 29, 2021
@michaelklishin michaelklishin deleted the faster-binding-recovery branch June 29, 2021 09:09
michaelklishin added a commit that referenced this pull request Jun 29, 2021
Faster implementation of rabbit_binding:recover/0

(cherry picked from commit a3e98c2)
michaelklishin added a commit that referenced this pull request Jun 29, 2021
@michaelklishin
Copy link
Member

Backported to v3.8.x.

@michaelklishin
Copy link
Member

Backported to v3.9.x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants