Beispiel #1
0
        public SiloControl(
            ILocalSiloDetails localSiloDetails,
            Factory <NodeConfiguration> localConfiguration,
            ClusterConfiguration clusterConfiguration,
            DeploymentLoadPublisher deploymentLoadPublisher,
            Catalog catalog,
            GrainTypeManager grainTypeManager,
            ISiloPerformanceMetrics siloMetrics,
            IEnumerable <IProviderManager> providerManagers,
            ProviderManagerSystemTarget providerManagerSystemTarget,
            CachedVersionSelectorManager cachedVersionSelectorManager,
            CompatibilityDirectorManager compatibilityDirectorManager,
            VersionSelectorManager selectorManager,
            ILoggerFactory loggerFactory)
            : base(Constants.SiloControlId, localSiloDetails.SiloAddress, loggerFactory)
        {
            this.localSiloDetails     = localSiloDetails;
            this.localConfiguration   = localConfiguration;
            this.clusterConfiguration = clusterConfiguration;

            this.logger = loggerFactory.CreateLogger <SiloControl>();
            this.deploymentLoadPublisher = deploymentLoadPublisher;
            this.catalog                      = catalog;
            this.grainTypeManager             = grainTypeManager;
            this.siloMetrics                  = siloMetrics;
            this.providerManagerSystemTarget  = providerManagerSystemTarget;
            this.providerManagers             = providerManagers.ToList();
            this.cachedVersionSelectorManager = cachedVersionSelectorManager;
            this.compatibilityDirectorManager = compatibilityDirectorManager;
            this.selectorManager              = selectorManager;
        }
Beispiel #2
0
        public SiloControl(
            ILocalSiloDetails localSiloDetails,
            DeploymentLoadPublisher deploymentLoadPublisher,
            Catalog catalog,
            GrainTypeManager grainTypeManager,
            ISiloPerformanceMetrics siloMetrics,
            CachedVersionSelectorManager cachedVersionSelectorManager,
            CompatibilityDirectorManager compatibilityDirectorManager,
            VersionSelectorManager selectorManager,
            IServiceProvider services,
            ILoggerFactory loggerFactory)
            : base(Constants.SiloControlId, localSiloDetails.SiloAddress, loggerFactory)
        {
            this.localSiloDetails = localSiloDetails;

            this.logger = loggerFactory.CreateLogger <SiloControl>();
            this.deploymentLoadPublisher = deploymentLoadPublisher;
            this.catalog                      = catalog;
            this.grainTypeManager             = grainTypeManager;
            this.siloMetrics                  = siloMetrics;
            this.cachedVersionSelectorManager = cachedVersionSelectorManager;
            this.compatibilityDirectorManager = compatibilityDirectorManager;
            this.selectorManager              = selectorManager;
            this.controllables                = new Dictionary <Tuple <string, string>, IControllable>();
            IEnumerable <IKeyedServiceCollection <string, IControllable> > namedIControllableCollections = services.GetServices <IKeyedServiceCollection <string, IControllable> >();

            foreach (IKeyedService <string, IControllable> keyedService in namedIControllableCollections.SelectMany(c => c.GetServices(services)))
            {
                IControllable controllable = keyedService.GetService(services);
                if (controllable != null)
                {
                    this.controllables.Add(Tuple.Create(controllable.GetType().FullName, keyedService.Key), controllable);
                }
            }
        }
 public CachedVersionSelectorManager(GrainTypeManager grainTypeManager, VersionSelectorManager versionSelectorManager, CompatibilityDirectorManager compatibilityDirectorManager)
 {
     this.grainTypeManager             = grainTypeManager;
     this.VersionSelectorManager       = versionSelectorManager;
     this.CompatibilityDirectorManager = compatibilityDirectorManager;
     this.getSilosFunc       = GetSuitableSilosImpl;
     this.suitableSilosCache = new CachedReadConcurrentDictionary <Tuple <int, int, ushort>, CachedEntry>();
 }
Beispiel #4
0
        public SiloControl(
            ILocalSiloDetails localSiloDetails,
            DeploymentLoadPublisher deploymentLoadPublisher,
            Catalog catalog,
            CachedVersionSelectorManager cachedVersionSelectorManager,
            CompatibilityDirectorManager compatibilityDirectorManager,
            VersionSelectorManager selectorManager,
            IServiceProvider services,
            ILoggerFactory loggerFactory,
            IMessageCenter messageCenter,
            ActivationCollector activationCollector,
            ActivationDirectory activationDirectory,
            IActivationWorkingSet activationWorkingSet,
            IAppEnvironmentStatistics appEnvironmentStatistics,
            IHostEnvironmentStatistics hostEnvironmentStatistics,
            IOptions <LoadSheddingOptions> loadSheddingOptions,
            GrainCountStatistics grainCountStatistics)
            : base(Constants.SiloControlType, localSiloDetails.SiloAddress, loggerFactory)
        {
            this.localSiloDetails = localSiloDetails;

            this.logger = loggerFactory.CreateLogger <SiloControl>();
            this.deploymentLoadPublisher = deploymentLoadPublisher;
            this.catalog = catalog;
            this.cachedVersionSelectorManager = cachedVersionSelectorManager;
            this.compatibilityDirectorManager = compatibilityDirectorManager;
            this.selectorManager           = selectorManager;
            _activationCollector           = activationCollector;
            this.activationDirectory       = activationDirectory;
            this.activationWorkingSet      = activationWorkingSet;
            this.appEnvironmentStatistics  = appEnvironmentStatistics;
            this.hostEnvironmentStatistics = hostEnvironmentStatistics;
            this.loadSheddingOptions       = loadSheddingOptions;
            _grainCountStatistics          = grainCountStatistics;
            this.controllables             = new Dictionary <Tuple <string, string>, IControllable>();
            IEnumerable <IKeyedServiceCollection <string, IControllable> > namedIControllableCollections = services.GetServices <IKeyedServiceCollection <string, IControllable> >();

            foreach (IKeyedService <string, IControllable> keyedService in namedIControllableCollections.SelectMany(c => c.GetServices(services)))
            {
                IControllable controllable = keyedService.GetService(services);
                if (controllable != null)
                {
                    this.controllables.Add(Tuple.Create(controllable.GetType().FullName, keyedService.Key), controllable);
                }
            }
        }
Beispiel #5
0
 public SiloControl(
     Silo silo,
     DeploymentLoadPublisher deploymentLoadPublisher,
     Catalog catalog,
     GrainTypeManager grainTypeManager,
     ISiloPerformanceMetrics siloMetrics,
     CachedVersionSelectorManager cachedVersionSelectorManager,
     CompatibilityDirectorManager compatibilityDirectorManager,
     VersionSelectorManager selectorManager)
     : base(Constants.SiloControlId, silo.SiloAddress)
 {
     this.silo = silo;
     this.deploymentLoadPublisher = deploymentLoadPublisher;
     this.catalog                      = catalog;
     this.grainTypeManager             = grainTypeManager;
     this.siloMetrics                  = siloMetrics;
     this.cachedVersionSelectorManager = cachedVersionSelectorManager;
     this.compatibilityDirectorManager = compatibilityDirectorManager;
     this.selectorManager              = selectorManager;
 }