[
https://issues.apache.org/jira/browse/GOBBLIN-1728?focusedWorklogId=818913&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-818913
]
ASF GitHub Bot logged work on GOBBLIN-1728:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 20/Oct/22 19:21
Start Date: 20/Oct/22 19:21
Worklog Time Spent: 10m
Work Description: homatthew commented on code in PR #3586:
URL: https://github.com/apache/gobblin/pull/3586#discussion_r1001027749
##########
gobblin-yarn/src/main/java/org/apache/gobblin/yarn/YarnService.java:
##########
@@ -474,11 +477,21 @@ public synchronized void
requestTargetNumberOfContainers(YarnContainerRequestBun
for (Map.Entry<String, Integer> entry :
yarnContainerRequestBundle.getHelixTagContainerCountMap().entrySet()) {
String currentHelixTag = entry.getKey();
int desiredContainerCount = entry.getValue();
+ Resource resourceForHelixTag =
yarnContainerRequestBundle.getHelixTagResourceMap().get(currentHelixTag);
+
// Calculate requested container count based on adding allocated count
and outstanding ContainerRequests in Yarn
- int requestedContainerCount =
allocatedContainerCountMap.getOrDefault(currentHelixTag, 0)
- +
getMatchingRequestsCount(yarnContainerRequestBundle.getHelixTagResourceMap().get(currentHelixTag));
- for(; requestedContainerCount < desiredContainerCount;
requestedContainerCount++) {
- requestContainer(Optional.absent(),
yarnContainerRequestBundle.getHelixTagResourceMap().get(currentHelixTag));
+ allocatedContainerCountMap.putIfAbsent(currentHelixTag, new
AtomicInteger(0));
+ int allocatedContainers =
allocatedContainerCountMap.get(currentHelixTag).get();
+ int outstandingContainerRequests =
getMatchingRequestsCount(resourceForHelixTag);
+ int requestedContainerCount = allocatedContainers +
outstandingContainerRequests;
Review Comment:
The main thing is this log line gives us information per helix tag. So I do
want to log this information because allocatedContainers can be too general.
But I agree the log could be misleading. My original intention is that the
helix tag in the front of the log line would imply these numbers are only
relevant to the helix tag in question
Issue Time Tracking
-------------------
Worklog Id: (was: 818913)
Time Spent: 2.5h (was: 2h 20m)
> Yarn Service requests too many containers due to improper calculation
> ---------------------------------------------------------------------
>
> Key: GOBBLIN-1728
> URL: https://issues.apache.org/jira/browse/GOBBLIN-1728
> Project: Apache Gobblin
> Issue Type: New Feature
> Reporter: Matthew Ho
> Priority: Major
> Time Spent: 2.5h
> Remaining Estimate: 0h
>
> Yarn Service is responsible for calculating the number of instances based on
> the helix tasks. Yarn service tracks the number of instances by asking Yarn
> for the number of resource requests and the number of allocated containers.
>
> It uses this count to determine if it should ask for more containers or
> shrink the number of containers. This calculation is currently done
> improperly and we continue to request containers when we have enough
> requested.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)