public class OutstandingRequestTracker extends Object
If an allocation comes in that is not in the map: either the allocation was unplaced, or the placed allocation could not be met on the specified host, and the RM/scheduler fell back to another location.
| Modifier and Type | Field and Description |
|---|---|
protected static org.slf4j.Logger |
log |
| Constructor and Description |
|---|
OutstandingRequestTracker() |
| Modifier and Type | Method and Description |
|---|---|
List<AbstractRMOperation> |
cancelOutstandingAARequests()
Cancel all outstanding AA requests from the lists of requests.
|
List<AbstractRMOperation> |
escalateOutstandingRequests(long now)
Escalate operation as triggered by external timer.
|
List<OutstandingRequest> |
extractOpenRequestsForRole(int roleId,
int count)
Extract a specific number of open requests for a role
|
List<OutstandingRequest> |
extractPlacedRequestsForRole(int roleId,
int count)
Extract a specific number of placed requests for a role
|
List<OutstandingRequest> |
listOpenRequests()
Get a list of outstanding requests.
|
List<OutstandingRequest> |
listPlacedRequests()
Get a list of outstanding requests.
|
OutstandingRequest |
lookupPlacedRequest(int role,
String hostname)
Look up any oustanding request to a (role, hostname).
|
OutstandingRequest |
newAARequest(int role,
List<NodeInstance> nodes,
String label)
Create a new Anti-affine request for the specific role
|
OutstandingRequest |
newRequest(NodeInstance instance,
int role)
Create a new request for the specific role.
|
ContainerAllocationResults |
onContainerAllocated(int role,
String hostname,
org.apache.hadoop.yarn.api.records.Container container)
Notification that a container has been allocated
drop it from the
placedRequests structure.
generate the cancellation request
for AA placement, any actions needed
|
void |
partitionRequests(RoleHistory rh,
List<org.apache.hadoop.yarn.api.records.Container> inAllocated,
List<org.apache.hadoop.yarn.api.records.Container> outPlaceRequested,
List<org.apache.hadoop.yarn.api.records.Container> outUnplaced)
Take a list of requests and split them into specific host requests and
generic assignments.
|
OutstandingRequest |
removePlacedRequest(OutstandingRequest request)
Remove a request
|
List<NodeInstance> |
resetOutstandingRequests(int role)
Reset list all outstanding requests for a role: return the hostnames
of any canceled requests
|
public OutstandingRequest newRequest(NodeInstance instance, int role)
If a location is set, the request is added to placedRequests.
If not, it is added to openRequests
This does not update the node instance's role's request count
instance - node instance to managerrole - role indexpublic OutstandingRequest newAARequest(int role, List<NodeInstance> nodes, String label)
It is added to openRequests
This does not update the node instance's role's request count
role - role indexnodes - list of suitable nodeslabel - label to usepublic OutstandingRequest lookupPlacedRequest(int role, String hostname)
role - role indexhostname - hostnameplacedRequestspublic OutstandingRequest removePlacedRequest(OutstandingRequest request)
request - matching request to findplacedRequestspublic ContainerAllocationResults onContainerAllocated(int role, String hostname, org.apache.hadoop.yarn.api.records.Container container)
placedRequests structure.role - role indexhostname - hostnamepublic void partitionRequests(RoleHistory rh, List<org.apache.hadoop.yarn.api.records.Container> inAllocated, List<org.apache.hadoop.yarn.api.records.Container> outPlaceRequested, List<org.apache.hadoop.yarn.api.records.Container> outUnplaced)
rh - RoleHistory instanceinAllocated - the list of allocated containersoutPlaceRequested - initially empty list of requested locationsoutUnplaced - initially empty list of unrequested hostspublic List<NodeInstance> resetOutstandingRequests(int role)
role - role to cancelpublic List<OutstandingRequest> listPlacedRequests()
public List<OutstandingRequest> listOpenRequests()
public List<AbstractRMOperation> escalateOutstandingRequests(long now)
public List<AbstractRMOperation> cancelOutstandingAARequests()
public List<OutstandingRequest> extractOpenRequestsForRole(int roleId, int count)
roleId - role Idcount - count to extractpublic List<OutstandingRequest> extractPlacedRequestsForRole(int roleId, int count)
roleId - role Idcount - count to extractCopyright © 2014–2015 The Apache Software Foundation. All rights reserved.