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

Optimise JetStream and Raft locking #6335

Merged
merged 3 commits into from
Jan 7, 2025
Merged

Optimise JetStream and Raft locking #6335

merged 3 commits into from
Jan 7, 2025

Conversation

neilalexander
Copy link
Member

This PR optimises some uses of the JetStream lock by reducing interactions between that and Raft group locks, which should mean that we don't end up in situations where we hold the JS lock while waiting to take a Raft lock etc.

Also updates a couple of the Raft group helper functions to not take the lock as they are returning values that are never mutated, creating unnecessary contention.

Signed-off-by: Neil Twigg [email protected]

None of these are ever mutated after the group is created, therefore we
will create unnecessary lock contention on the group lock by trying to
take it.

Signed-off-by: Neil Twigg <[email protected]>
Otherwise consumer infos could hold the JS lock while waiting to take
the Raft lock for a group.

Signed-off-by: Neil Twigg <[email protected]>
@neilalexander neilalexander requested a review from a team as a code owner January 7, 2025 10:57
@neilalexander
Copy link
Member Author

(Please regular merge rather than squash merge, I'd like these changes to stay in the commit log for individual blames.)

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 0153091 into main Jan 7, 2025
5 checks passed
@derekcollison derekcollison deleted the neil/jslocks branch January 7, 2025 14:26
wallyqs added a commit that referenced this pull request Jan 9, 2025
#### Dependencies
- #6323
- #6324

####  Leafnode
- #6291

#### JetStream
- #6226
- #6235
- #6277
- #6279
- #6283
- #6289
- #6316
- #6317
- #6325
- #6326
- #6335
- #6338
- #6341
- #6344
- #6150
- #6351
- #6355

#### Tests
- #6278
- #6297
- #6300
- #6343
- #6329
- #6330
- #6331
- #6332
- #6334
- #6356
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