public AzureBasedReminderTable(IGrainReferenceConverter grainReferenceConverter, ILoggerFactory loggerFactory, IOptions <SiloOptions> siloOptions)
 {
     this.grainReferenceConverter = grainReferenceConverter;
     this.logger        = loggerFactory.CreateLogger <AzureBasedReminderTable>();
     this.loggerFactory = loggerFactory;
     this.siloOptions   = siloOptions.Value;
 }
Пример #2
0
        public ProtocolServices(
            Grain gr,
            ILoggerFactory loggerFactory,
            IMultiClusterRegistrationStrategy strategy,
            SerializationManager serializationManager,
            IInternalGrainFactory grainFactory,
            IOptions <SiloOptions> siloOptions,
            IOptions <MultiClusterOptions> multiClusterOptions,
            IMultiClusterOracle multiClusterOracle)
        {
            this.grain                = gr;
            this.log                  = loggerFactory.CreateLogger <ProtocolServices>();
            this.grainFactory         = grainFactory;
            this.RegistrationStrategy = strategy;
            this.SerializationManager = serializationManager;
            this.multiClusterOracle   = multiClusterOracle;
            this.siloOptions          = siloOptions.Value;
            this.multiClusterOptions  = multiClusterOptions.Value;

            if (!this.multiClusterOptions.HasMultiClusterNetwork)
            {
                // we are creating a default multi-cluster configuration containing exactly one cluster, this one.
                this.pseudoMultiClusterConfiguration = PseudoMultiClusterConfigurations.FindOrCreate(
                    this.siloOptions.ClusterId,
                    CreatePseudoConfig);
            }
        }
Пример #3
0
 public KubeMembershipTable(ILoggerFactory loggerFactory, IOptions <SiloOptions> siloOptions, IOptions <KubeClusteringOptions> clusteringOptions)
 {
     this._siloOptions   = siloOptions.Value;
     this._loggerFactory = loggerFactory;
     this._logger        = loggerFactory?.CreateLogger <KubeMembershipTable>();
     this._options       = clusteringOptions.Value;
 }
 public MultiClusterGossipChannelFactory(IOptions <SiloOptions> siloOptions, IOptions <MultiClusterOptions> multiClusterOptions, IServiceProvider serviceProvider, ILogger <MultiClusterGossipChannelFactory> logger)
 {
     this.siloOptions         = siloOptions.Value;
     this.multiClusterOptions = multiClusterOptions.Value;
     this.serviceProvider     = serviceProvider;
     this.logger = logger;
 }
Пример #5
0
 public SQSAdapterFactory(string name, SqsStreamOptions options, IServiceProvider serviceProvider, IOptions <SiloOptions> siloOptions, SerializationManager serializationManager, ILoggerFactory loggerFactory)
 {
     this.providerName         = name;
     this.options              = options;
     this.siloOptions          = siloOptions.Value;
     this.serializationManager = serializationManager;
     this.loggerFactory        = loggerFactory;
 }
Пример #6
0
 public PubSubAdapterFactory(string name, PubSubStreamOptions options, IServiceProvider serviceProvider, IOptions <SiloOptions> siloOptions, SerializationManager serializationManager, ILoggerFactory loggerFactory)
 {
     this._providerName        = name;
     this.options              = options;
     this.siloOptions          = siloOptions.Value;
     this.SerializationManager = serializationManager;
     this.loggerFactory        = loggerFactory;
     this._adaptorFactory      = () => ActivatorUtilities.GetServiceOrCreateInstance <TDataAdapter>(serviceProvider);
 }
 public AzureQueueAdapterFactory(string name, AzureQueueStreamOptions options, IServiceProvider serviceProvider, IOptions <SiloOptions> siloOptions, SerializationManager serializationManager, ILoggerFactory loggerFactory)
 {
     this.providerName         = name;
     this.options              = options ?? throw new ArgumentNullException(nameof(options));
     this.siloOptions          = siloOptions.Value;
     this.SerializationManager = serializationManager ?? throw new ArgumentNullException(nameof(serializationManager));
     this.loggerFactory        = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
     this.dataAadaptorFactory  = () => ActivatorUtilities.GetServiceOrCreateInstance <TDataAdapter>(serviceProvider);
 }
Пример #8
0
 public CosmosDBReminderTable(IGrainReferenceConverter grainReferenceConverter,
                              ILoggerFactory loggerFactory,
                              IOptions <SiloOptions> siloOptions,
                              IOptions <AzureCosmosDBReminderProviderOptions> options)
 {
     this._loggerFactory           = loggerFactory;
     this._logger                  = loggerFactory.CreateLogger(nameof(CosmosDBReminderTable));
     this._siloOptions             = siloOptions.Value;
     this._options                 = options.Value;
     this._grainReferenceConverter = grainReferenceConverter;
 }
Пример #9
0
 internal GatewayAcceptor(
     MessageCenter msgCtr,
     Gateway gateway,
     IPEndPoint gatewayAddress,
     MessageFactory messageFactory,
     SerializationManager serializationManager,
     ExecutorService executorService,
     IOptions <SiloOptions> siloOptions,
     IOptions <MultiClusterOptions> multiClusterOptions,
     ILoggerFactory loggerFactory)
     : base(msgCtr, gatewayAddress, SocketDirection.GatewayToClient, messageFactory, serializationManager, executorService, loggerFactory)
 {
     this.gateway               = gateway;
     this.loadSheddingCounter   = CounterStatistic.FindOrCreate(StatisticNames.GATEWAY_LOAD_SHEDDING);
     this.gatewayTrafficCounter = CounterStatistic.FindOrCreate(StatisticNames.GATEWAY_RECEIVED);
     this.siloOptions           = siloOptions.Value;
     this.multiClusterOptions   = multiClusterOptions.Value;
 }
Пример #10
0
 public GlobalSingleInstanceActivationMaintainer(
     LocalGrainDirectory router,
     Logger logger,
     GlobalConfiguration config,
     IInternalGrainFactory grainFactory,
     IMultiClusterOracle multiClusterOracle,
     ExecutorService executorService,
     IOptions <SiloOptions> siloOptions,
     IOptions <MultiClusterOptions> multiClusterOptions,
     ILoggerFactory loggerFactory)
     : base(executorService, loggerFactory)
 {
     this.router              = router;
     this.logger              = logger;
     this.grainFactory        = grainFactory;
     this.multiClusterOracle  = multiClusterOracle;
     this.siloOptions         = siloOptions.Value;
     this.multiClusterOptions = multiClusterOptions.Value;
     this.period              = config.GlobalSingleInstanceRetryInterval;
     logger.Verbose("GSIP:M GlobalSingleInstanceActivationMaintainer Started, Period = {0}", period);
 }
Пример #11
0
        public SiloStatisticsManager(SiloInitializationParameters initializationParams, SerializationManager serializationManager, ITelemetryProducer telemetryProducer, ILoggerFactory loggerFactory, IOptions <SiloOptions> siloOptions)
        {
            MessagingStatisticsGroup.Init(true);
            MessagingProcessingStatisticsGroup.Init();
            NetworkingStatisticsGroup.Init(true);
            ApplicationRequestsStatisticsGroup.Init(initializationParams.ClusterConfig.Globals.ResponseTimeout);
            SchedulerStatisticsGroup.Init(loggerFactory);
            StorageStatisticsGroup.Init();
            TransactionsStatisticsGroup.Init();
            this.logger            = new LoggerWrapper <SiloStatisticsManager>(loggerFactory);
            runtimeStats           = new RuntimeStatisticsGroup(loggerFactory);
            this.logStatistics     = new LogStatistics(initializationParams.NodeConfig.StatisticsLogWriteInterval, true, serializationManager, loggerFactory);
            this.MetricsTable      = new SiloPerformanceMetrics(this.runtimeStats, loggerFactory, initializationParams.NodeConfig);
            this.countersPublisher = new CountersStatistics(initializationParams.NodeConfig.StatisticsPerfCountersWriteInterval, telemetryProducer, loggerFactory);

            initializationParams.ClusterConfig.OnConfigChange(
                "Defaults/LoadShedding",
                () => this.MetricsTable.NodeConfig = initializationParams.NodeConfig,
                false);
            this.siloOptions = siloOptions.Value;
        }
Пример #12
0
        /// <summary>
        /// Returns a correct implementation of the persistence provider according to environment variables.
        /// </summary>
        /// <remarks>If the environment invariants have failed to hold upon creation of the storage provider,
        /// a <em>null</em> value will be provided.</remarks>
        public async Task <IGrainStorage> GetStorageProvider(string storageInvariant)
        {
            //Make sure the environment invariants hold before trying to give a functioning SUT instantiation.
            //This is done instead of the constructor to have more granularity on how the environment should be initialized.
            try
            {
                using (await StorageLock.LockAsync())
                {
                    if (AdoNetInvariants.Invariants.Contains(storageInvariant))
                    {
                        if (!StorageProviders.ContainsKey(storageInvariant))
                        {
                            Storage = Invariants.EnsureStorageForTesting(Invariants.ActiveSettings.ConnectionStrings.First(i => i.StorageInvariant == storageInvariant));

                            var options = new AdoNetGrainStorageOptions()
                            {
                                ConnectionString = Storage.Storage.ConnectionString,
                                Invariant        = storageInvariant
                            };
                            var siloOptions = new SiloOptions()
                            {
                                ServiceId = Guid.NewGuid()
                            };
                            var storageProvider = new AdoNetGrainStorage(DefaultProviderRuntime.ServiceProvider.GetService <ILogger <AdoNetGrainStorage> >(), DefaultProviderRuntime, Options.Create(options), Options.Create(siloOptions), storageInvariant + "_StorageProvider");
                            var siloLifeCycle   = new SiloLifecycle(NullLoggerFactory.Instance);
                            storageProvider.Participate(siloLifeCycle);
                            await siloLifeCycle.OnStart(CancellationToken.None);

                            StorageProviders[storageInvariant] = storageProvider;
                        }
                    }
                }
            }
            catch
            {
                StorageProviders.Add(storageInvariant, null);
            }

            return(StorageProviders[storageInvariant]);
        }
Пример #13
0
 public void Configure(SiloOptions options)
 {
     options.SiloName = Environment.GetEnvironmentVariable(KubernetesHostingOptions.PodNameEnvironmentVariable);
 }