1 write to _availableNodes
Microsoft.Build (1)
BackEnd\Components\Scheduler\Scheduler.cs (1)
602_availableNodes = new Dictionary<int, NodeInfo>(8);
25 references to _availableNodes
Microsoft.Build (25)
BackEnd\Components\Scheduler\Scheduler.cs (25)
552_availableNodes[nodeInfo.NodeId] = nodeInfo; 763HashSet<int> idleNodes = new HashSet<int>(_availableNodes.Count); 764foreach (int availableNodeId in _availableNodes.Keys) 789if (_availableNodes.Count > 0) 845TraceScheduler($"Requests scheduled: {nodesFreeToDoWorkPriorToScheduling - idleNodes.Count} Unassigned Requests: {_schedulingData.UnscheduledRequestsCount} Blocked Requests: {_schedulingData.BlockedRequestsCount} Unblockable Requests: {_schedulingData.ReadyRequestsCount} Free Nodes: {idleNodes.Count}/{_availableNodes.Count} Responses: {responses.Count}"); 1095IEnumerable<int> nodesByConfigurationCountAscending = _availableNodes.Keys.OrderBy(x => _schedulingData.GetConfigurationsCountByNode(x, excludeTraversals: true, _configCache)); 1235if (_availableNodes[nodeId].CanServiceRequestWithAffinity(nodeAffinity)) 1360Dictionary<int, int> configurationCountsByNode = new Dictionary<int, int>(_availableNodes.Count); 1366foreach (int availableNodeId in _availableNodes.Keys) 1372configurationCountLimit = Math.Max(1, (int)Math.Ceiling(configurationCountLimit * _customSchedulerForSQLConfigurationLimitMultiplier / _availableNodes.Count)); 1375List<int> nodesByConfigurationCountAscending = new List<int>(_availableNodes.Keys); 1433bool mustSendConfigurationToNode = _availableNodes[nodeId].AssignConfiguration(request.BuildRequest.ConfigurationId); 1522bool result = _availableNodes[nodeId].CanServiceRequestWithAffinity(affinity); 1805if (!_availableNodes[assignedNodeId].CanServiceRequestWithAffinity(GetNodeAffinityForRequest(request))) 1815existingRequestAffinity = (_availableNodes[assignedNodeId].ProviderType == NodeProviderType.InProc) ? NodeAffinity.InProc : NodeAffinity.OutOfProc; 1988foreach (int nodeId in _availableNodes.Keys) 2341foreach (NodeInfo node in _availableNodes.Values) 2440int[] currentWork = new int[_availableNodes.Count]; 2447TimeSpan[] nodeActiveTimes = new TimeSpan[_availableNodes.Count]; 2448DateTime[] nodeStartTimes = new DateTime[_availableNodes.Count]; 2451Dictionary<int, int> availableNodeIdsToIndex = new Dictionary<int, int>(_availableNodes.Count); 2452int[] indexToAvailableNodeId = new int[_availableNodes.Count]; 2455foreach (int availableNodeId in _availableNodes.Keys) 2566loggingService.LogComment(context, MessageImportance.Normal, "NodeUtilizationSummary", utilitzationPercentages.ToString(), (utilizationAverage / (double)_availableNodes.Count) * 100); 2800foreach (int nodeId in _availableNodes.Keys)