Add multiple locks which can be obtained based on segment name in lookupOrCreateFSM#4159
Merged
npawar merged 2 commits intoapache:masterfrom Apr 24, 2019
Merged
Add multiple locks which can be obtained based on segment name in lookupOrCreateFSM#4159npawar merged 2 commits intoapache:masterfrom
npawar merged 2 commits intoapache:masterfrom
Conversation
kishoreg
reviewed
Apr 24, 2019
.../src/main/java/org/apache/pinot/controller/helix/core/realtime/SegmentCompletionManager.java
Outdated
Show resolved
Hide resolved
Contributor
Author
The idea is to lookup in the fsmMap, and use that if not null. If it is null, then create a new instance of fsm and put it in the map. The fsm cannot be null after the if-else if-else block. Which place are you referring to? |
Member
|
My bad, I thought there were two if blocks (outer and inner). In other words, we dont need a lock to check the existence in fsmMap we need the lock if the fsm does not exists. But it's not a big deal in this code path. |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Adding segment name based locks instead of synchronizing the method lookupOrCreateFSM. The latter prevents even other segments from entering the method and accessing their own fsm. A stall in a single call (could be on zk access, gc) can create a ripple effect delay in all segments waiting on that method