public StatefulContainer(NMClientAsync client, ContainerId containerId) { this.nmClientAsync = client; this.containerId = containerId; stateMachine = stateMachineFactory.Make(this); ReentrantReadWriteLock Lock = new ReentrantReadWriteLock(); readLock = Lock.ReadLock(); writeLock = Lock.WriteLock(); }
public RMContainerImpl(Container container, ApplicationAttemptId appAttemptId, NodeId nodeId, string user, RMContext rmContext, long creationTime) { // Transitions from NEW state // Transitions from RESERVED state // nothing to do // nothing to do // Transitions from ALLOCATED state // Transitions from ACQUIRED state // Transitions from RUNNING state // Transitions from COMPLETED state // Transitions from EXPIRED state // Transitions from RELEASED state // Transitions from KILLED state // create the topology tables this.stateMachine = stateMachineFactory.Make(this); this.containerId = container.GetId(); this.nodeId = nodeId; this.container = container; this.appAttemptId = appAttemptId; this.user = user; this.creationTime = creationTime; this.rmContext = rmContext; this.eventHandler = rmContext.GetDispatcher().GetEventHandler(); this.containerAllocationExpirer = rmContext.GetContainerAllocationExpirer(); this.isAMContainer = false; this.resourceRequests = null; ReentrantReadWriteLock Lock = new ReentrantReadWriteLock(); this.readLock = Lock.ReadLock(); this.writeLock = Lock.WriteLock(); saveNonAMContainerMetaInfo = rmContext.GetYarnConfiguration().GetBoolean(YarnConfiguration .ApplicationHistorySaveNonAmContainerMetaInfo, YarnConfiguration.DefaultApplicationHistorySaveNonAmContainerMetaInfo ); rmContext.GetRMApplicationHistoryWriter().ContainerStarted(this); // If saveNonAMContainerMetaInfo is true, store system metrics for all // containers. If false, and if this container is marked as the AM, metrics // will still be published for this container, but that calculation happens // later. if (saveNonAMContainerMetaInfo) { rmContext.GetSystemMetricsPublisher().ContainerCreated(this, this.creationTime); } }