You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gobblin.apache.org by GitBox <gi...@apache.org> on 2020/07/14 00:46:11 UTC
[GitHub] [incubator-gobblin] sv2000 opened a new pull request #3059: GOBBLIN-1211: Track unused Helix instances in a thread-safe manner
sv2000 opened a new pull request #3059:
URL: https://github.com/apache/incubator-gobblin/pull/3059
Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
### JIRA
- [x] My PR addresses the following [Gobblin JIRA](https://issues.apache.org/jira/browse/GOBBLIN/) issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"
- https://issues.apache.org/jira/browse/GOBBLIN-1211
### Description
- [x] Here are some details about my PR, including screenshots (if applicable):
The AMRMClient processes container allocation events asynchronously in a separate thread. If there are multiple concurrent container requests and consequent callbacks, we need to ensure that updates to shared data structures such as the set of unused Helix instance names are consistent and thread-safe. In other words, any updates to this set made by one thread will be visible to all other threads handling the container allocation events.
### Tests
- [x] My PR adds the following unit tests __OR__ does not need testing for this extremely good reason:
Existing tests.
### Commits
- [x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "[How to write a good git commit message](http://chris.beams.io/posts/git-commit/)":
1. Subject is separated from body by a blank line
2. Subject is limited to 50 characters
3. Subject does not end with a period
4. Subject uses the imperative mood ("add", not "adding")
5. Body wraps at 72 characters
6. Body explains "what" and "why", not "how"
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-gobblin] autumnust commented on a change in pull request #3059: GOBBLIN-1211: Track unused Helix instances in a thread-safe manner
Posted by GitBox <gi...@apache.org>.
autumnust commented on a change in pull request #3059:
URL: https://github.com/apache/incubator-gobblin/pull/3059#discussion_r454033430
##########
File path: gobblin-yarn/src/main/java/org/apache/gobblin/yarn/YarnService.java
##########
@@ -766,13 +767,21 @@ public void onContainersAllocated(List<Container> containers) {
//Iterate over the (thread-safe) set of unused instances to find the first instance that is not currently live.
//Once we find a candidate instance, it is removed from the set.
String instanceName = null;
- Iterator<String> iterator = unusedHelixInstanceNames.iterator();
- while (iterator.hasNext()) {
- instanceName = iterator.next();
- if (!HelixUtils.isInstanceLive(helixManager, instanceName)) {
- iterator.remove();
- LOGGER.info("Found an unused instance {}", instanceName);
- break;
+
+ //Ensure that updates to unusedHelixInstanceNames are visible to other threads that might concurrently
+ //invoke the callback on container allocation.
+ synchronized (lock) {
Review comment:
Why using explicit lock instead of intrinsic lock here?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-gobblin] asfgit closed pull request #3059: GOBBLIN-1211: Track unused Helix instances in a thread-safe manner
Posted by GitBox <gi...@apache.org>.
asfgit closed pull request #3059:
URL: https://github.com/apache/incubator-gobblin/pull/3059
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-gobblin] sv2000 commented on pull request #3059: GOBBLIN-1211: Track unused Helix instances in a thread-safe manner
Posted by GitBox <gi...@apache.org>.
sv2000 commented on pull request #3059:
URL: https://github.com/apache/incubator-gobblin/pull/3059#issuecomment-657902095
@autumnust @ZihanLi58 Please review.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org