Esempio n. 1
0
 internal Dispatcher(
     OrleansTaskScheduler scheduler,
     ISiloMessageCenter transport,
     Catalog catalog,
     IOptions <SiloMessagingOptions> messagingOptions,
     PlacementDirectorsManager placementDirectorsManager,
     ILocalGrainDirectory localGrainDirectory,
     MessageFactory messagefactory,
     SerializationManager serializationManager,
     CompatibilityDirectorManager compatibilityDirectorManager,
     ILoggerFactory loggerFactory,
     IOptions <SchedulingOptions> schedulerOptions)
 {
     this.scheduler                    = scheduler;
     this.catalog                      = catalog;
     Transport                         = transport;
     this.messagingOptions             = messagingOptions.Value;
     this.invokeWorkItemLogger         = loggerFactory.CreateLogger <InvokeWorkItem>();
     this.placementDirectorsManager    = placementDirectorsManager;
     this.localGrainDirectory          = localGrainDirectory;
     this.messagefactory               = messagefactory;
     this.serializationManager         = serializationManager;
     this.compatibilityDirectorManager = compatibilityDirectorManager;
     this.schedulingOptions            = schedulerOptions.Value;
     logger = loggerFactory.CreateLogger <Dispatcher>();
     random = new SafeRandom();
 }
Esempio n. 2
0
 internal Dispatcher(
     OrleansTaskScheduler scheduler,
     ISiloMessageCenter transport,
     Catalog catalog,
     ClusterConfiguration config,
     PlacementDirectorsManager placementDirectorsManager,
     ILocalGrainDirectory localGrainDirectory,
     MessageFactory messagefactory,
     SerializationManager serializationManager,
     CompatibilityDirectorManager compatibilityDirectorManager,
     ILoggerFactory loggerFactory)
 {
     this.loggerFactory                = loggerFactory;
     this.scheduler                    = scheduler;
     this.catalog                      = catalog;
     Transport                         = transport;
     this.config                       = config;
     this.invokeWorkItemLogger         = loggerFactory.CreateLogger <InvokeWorkItem>();
     this.placementDirectorsManager    = placementDirectorsManager;
     this.localGrainDirectory          = localGrainDirectory;
     this.messagefactory               = messagefactory;
     this.serializationManager         = serializationManager;
     this.compatibilityDirectorManager = compatibilityDirectorManager;
     logger = new LoggerWrapper <Dispatcher>(loggerFactory);
     random = new SafeRandom();
 }
Esempio n. 3
0
 internal Dispatcher(
     OrleansTaskScheduler scheduler,
     MessageCenter transport,
     Catalog catalog,
     IOptions <SiloMessagingOptions> messagingOptions,
     PlacementService placementService,
     ILocalGrainDirectory localGrainDirectory,
     GrainLocator grainLocator,
     ActivationCollector activationCollector,
     MessageFactory messageFactory,
     CompatibilityDirectorManager compatibilityDirectorManager,
     ILoggerFactory loggerFactory,
     RuntimeMessagingTrace messagingTrace,
     GrainVersionManifest versionManifest)
 {
     this.scheduler                    = scheduler;
     this.catalog                      = catalog;
     Transport                         = transport;
     this.messagingOptions             = messagingOptions.Value;
     this.invokeWorkItemLogger         = loggerFactory.CreateLogger <InvokeWorkItem>();
     this.placementService             = placementService;
     this.localGrainDirectory          = localGrainDirectory;
     this.grainLocator                 = grainLocator;
     this.activationCollector          = activationCollector;
     this.messageFactory               = messageFactory;
     this.compatibilityDirectorManager = compatibilityDirectorManager;
     this.messagingTrace               = messagingTrace;
     this._versionManifest             = versionManifest;
     logger = loggerFactory.CreateLogger <Dispatcher>();
 }
Esempio n. 4
0
        internal Dispatcher(
            OrleansTaskScheduler scheduler,
            ISiloMessageCenter transport,
            Catalog catalog,
            ClusterConfiguration config,
            PlacementDirectorsManager placementDirectorsManager,
            ILocalGrainDirectory localGrainDirectory,
            MessageFactory messagefactory,
            SerializationManager serializationManager,
            CompatibilityDirectorManager compatibilityDirectorManager)
        {
            this.scheduler = scheduler;
            this.catalog   = catalog;
            Transport      = transport;
            this.config    = config;
            this.placementDirectorsManager    = placementDirectorsManager;
            this.localGrainDirectory          = localGrainDirectory;
            this.messagefactory               = messagefactory;
            this.serializationManager         = serializationManager;
            this.compatibilityDirectorManager = compatibilityDirectorManager;
            logger = LogManager.GetLogger("Dispatcher", LoggerType.Runtime);
            rejectionInjectionRate = config.Globals.RejectionInjectionRate;
            double messageLossInjectionRate = config.Globals.MessageLossInjectionRate;

            errorInjection     = rejectionInjectionRate > 0.0d || messageLossInjectionRate > 0.0d;
            errorInjectionRate = rejectionInjectionRate + messageLossInjectionRate;
            random             = new SafeRandom();
        }
Esempio n. 5
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;
        }
 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>();
 }
Esempio n. 7
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);
                }
            }
        }
 public ActivationMessageScheduler(
     Catalog catalog,
     Dispatcher dispatcher,
     GrainVersionManifest versionManifest,
     RuntimeMessagingTrace messagingTrace,
     ActivationCollector activationCollector,
     OrleansTaskScheduler scheduler,
     CompatibilityDirectorManager compatibilityDirectorManager,
     IncomingRequestMonitor incomingRequestMonitor)
 {
     _incomingRequestMonitor = incomingRequestMonitor;
     _catalog                      = catalog;
     _versionManifest              = versionManifest;
     _messagingTrace               = messagingTrace;
     _activationCollector          = activationCollector;
     _scheduler                    = scheduler;
     _compatibilityDirectorManager = compatibilityDirectorManager;
     _dispatcher                   = dispatcher;
 }
Esempio n. 9
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;
 }
Esempio n. 10
0
 public InternalGrainRuntime(
     MessageCenter messageCenter,
     Catalog catalog,
     GrainVersionManifest versionManifest,
     RuntimeMessagingTrace messagingTrace,
     GrainLocator grainLocator,
     CompatibilityDirectorManager compatibilityDirectorManager,
     IOptions <GrainCollectionOptions> collectionOptions,
     ILocalGrainDirectory localGrainDirectory,
     IActivationWorkingSet activationWorkingSet)
 {
     MessageCenter                = messageCenter;
     Catalog                      = catalog;
     RuntimeClient                = catalog.RuntimeClient;
     GrainVersionManifest         = versionManifest;
     MessagingTrace               = messagingTrace;
     CompatibilityDirectorManager = compatibilityDirectorManager;
     GrainLocator                 = grainLocator;
     CollectionOptions            = collectionOptions;
     LocalGrainDirectory          = localGrainDirectory;
     ActivationWorkingSet         = activationWorkingSet;
 }
Esempio n. 11
0
        public SiloControl(
            ILocalSiloDetails localSiloDetails,
            Factory <NodeConfiguration> localConfiguration,
            ClusterConfiguration clusterConfiguration,
            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.localConfiguration   = localConfiguration;
            this.clusterConfiguration = clusterConfiguration;

            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);
                }
            }
        }