homatthew commented on code in PR #3586:
URL: https://github.com/apache/gobblin/pull/3586#discussion_r999766182
##########
gobblin-yarn/src/main/java/org/apache/gobblin/yarn/YarnService.java:
##########
@@ -789,11 +815,17 @@ private ImmutableMap.Builder<String, String>
buildContainerStatusEventMetadata(C
/**
* Get the number of matching container requests for the specified resource
memory and cores.
+ * Due to YARN-1902, this API is not 100% accurate. However, {@link
AMRMClientCallbackHandler#onContainersAllocated(List)}
+ * contains logic for best effort clean up of duplicate requests, and in
practice is pretty accurate.
*/
private int getMatchingRequestsCount(Resource resource) {
int priorityNum = resourcePriorityMap.getOrDefault(resource.toString(), 0);
Priority priority = Priority.newInstance(priorityNum);
- return getAmrmClientAsync().getMatchingRequests(priority,
ResourceRequest.ANY, resource).size();
+ List<? extends Collection> outstandingRequests =
getAmrmClientAsync().getMatchingRequests(priority, ResourceRequest.ANY,
resource);
Review Comment:
The other logical change is that this API call `getMatchingRequests` returns
a `List<? extends Collection>` and we were calculating the number of
outstanding requests incorrectly.
If we just return the size of this, we will always return a small value
because the API returns a list of collections, where each collection is the
requests partitioned by the node ID. So
The pending requests count should be the sum of all outstanding requests.
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]