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

Use interest-based intersection for NumPendingMulti #6112

Merged
merged 1 commit into from
Nov 12, 2024

Conversation

neilalexander
Copy link
Member

This optimises #6089 by ensuring that we don't over-walk either the sublist or the subject tree, instead only matching the subject tree on subjects for which the sublist expresses interest.

On my machine, in the JetStreamConsumeWithFilters benchmark with -benchtime 1000x, this reduces the CPU time taken by NumPendingMulti by 19.41 seconds, reducing it to only 0.06 seconds.

Signed-off-by: Neil Twigg neil@nats.io

@neilalexander neilalexander requested a review from a team as a code owner November 12, 2024 13:42
Copy link
Member

@derekcollison derekcollison left a comment

Choose a reason for hiding this comment

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

Nice work! Some comments on naming.

server/sublist.go Outdated Show resolved Hide resolved
server/sublist.go Outdated Show resolved Hide resolved
This optimises #6089 by ensuring that we don't over-walk either the
sublist or the subject tree, instead only matching the subject tree on
subjects for which the sublist expresses interest.

Signed-off-by: Neil Twigg <neil@nats.io>
Copy link
Member

@derekcollison derekcollison left a comment

Choose a reason for hiding this comment

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

LGTM

@derekcollison derekcollison merged commit 06531e0 into main Nov 12, 2024
5 checks passed
@derekcollison derekcollison deleted the neil/numpendingmulti branch November 12, 2024 17:01
neilalexander added a commit that referenced this pull request Nov 12, 2024
Includes the following:

* Some tweaks to the NRG test helpers
* #6055
* #6061
* #6065 
* #6041 (but with `math/rand`
instead of `math/rand/v2` due to an older Go version in CI for 2.10.x)
* #6066
* #6067
* #6069
* #6075
* #6082
* #6087
* #6086
* #6088
* #6089
* #6092
* #6096
* #6098
* #6097
* #6105
* #6104
* #6106
* #6109
* #6111
* #6112

Signed-off-by: Neil Twigg <neil@nats.io>
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.

2 participants