-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
[improve][ml] Avoid repetitive nested lock for isMessageDeleted in ManagedCursorImpl #23609
Merged
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
lhotari
approved these changes
Nov 19, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
lhotari
changed the title
[cleanup][ml] Clean up nested read-write lock code in ManagedCursor
[improve][ml] Avoid nested lock for isMessageDeleted in ManagedCursorImpl
Nov 19, 2024
lhotari
changed the title
[improve][ml] Avoid nested lock for isMessageDeleted in ManagedCursorImpl
[improve][ml] Avoid repetitive nested lock for isMessageDeleted in ManagedCursorImpl
Nov 19, 2024
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #23609 +/- ##
============================================
+ Coverage 73.57% 74.38% +0.80%
- Complexity 32624 34458 +1834
============================================
Files 1877 1944 +67
Lines 139502 147128 +7626
Branches 15299 16224 +925
============================================
+ Hits 102638 109437 +6799
- Misses 28908 29264 +356
- Partials 7956 8427 +471
Flags with carried forward coverage won't be shown. Click here to find out more.
|
2 tasks
nikhil-ctds
pushed a commit
to datastax/pulsar
that referenced
this pull request
Nov 26, 2024
…nagedCursorImpl (apache#23609) (cherry picked from commit 895e968) (cherry picked from commit 96cf000)
srinath-ctds
pushed a commit
to datastax/pulsar
that referenced
this pull request
Nov 26, 2024
…nagedCursorImpl (apache#23609) (cherry picked from commit 895e968) (cherry picked from commit 96cf000)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
cherry-picked/branch-3.0
cherry-picked/branch-3.3
cherry-picked/branch-4.0
doc-not-needed
Your PR changes do not impact docs
release/3.0.8
release/3.3.3
release/4.0.1
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.
Main Issue: #23605
Motivation
The following are all related to the
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl#isMessageDeleted
:pulsar/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
Lines 3542 to 3551 in 89ccb73
A write lock has already been acquired, but a read lock has been acquired as well. This doesn't pose a major problem, but it does result in some unnecessary additional overhead.
pulsar/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
Lines 2328 to 2348 in 89ccb73
The performance impact of nested read locks can be negligible, but frequent acquisition and release of locks will slightly increase system overhead.
pulsar/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
Lines 1570 to 1575 in 89ccb73
Modifications
Verifying this change
(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)
Does this pull request potentially affect one of the following parts:
If the box was checked, please highlight the changes
Documentation
doc
doc-required
doc-not-needed
doc-complete
Matching PR in forked repository
PR in forked repository: