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>();
 }
        public GrainDirectoryResolver(IServiceProvider serviceProvider, GrainTypeManager grainTypeManager)
        {
            this.grainTypeManager = grainTypeManager;

            // Load all registered directories
            var services = serviceProvider
                           .GetRequiredService <IKeyedServiceCollection <string, IGrainDirectory> >()
                           .GetServices(serviceProvider);

            foreach (var svc in services)
            {
                this.directoryPerName.Add(svc.Key, svc.GetService(serviceProvider));
            }
        }
Example #3
0
 public ManagementGrain(
     IInternalGrainFactory internalGrainFactory,
     ISiloStatusOracle siloStatusOracle,
     GrainTypeManager grainTypeManager,
     IVersionStore versionStore,
     ILogger <ManagementGrain> logger,
     MembershipTableManager membershipTableManager)
 {
     this.membershipTableManager = membershipTableManager;
     this.internalGrainFactory   = internalGrainFactory;
     this.siloStatusOracle       = siloStatusOracle;
     this.grainTypeManager       = grainTypeManager;
     this.versionStore           = versionStore;
     this.logger = logger;
 }
Example #4
0
        /// <summary>
        /// Constructors -- Registers Orleans system performance counters, 
        /// plus any grain-specific activation conters that can be detected when this installer is run.
        /// </summary>
        public OrleansPerformanceCounterInstaller()
        {
            SerializationTestEnvironment.Initialize();
            Trace.Listeners.Clear();
            var cfg = new NodeConfiguration { TraceFilePattern = null, TraceToConsole = false };
            LogManager.Initialize(cfg);

            consumer = new OrleansPerfCounterTelemetryConsumer();

            if (GrainTypeManager.Instance == null)
            {
                var loader = new SiloAssemblyLoader(new Dictionary<string, SearchOption>());
                var typeManager = new GrainTypeManager(false, loader, new RandomPlacementDefaultStrategy());
                GrainTypeManager.Instance.Start(false);
            }
        }
Example #5
0
 public ManagementGrain(
     IOptions <MultiClusterOptions> multiClusterOptions,
     IMultiClusterOracle multiClusterOracle,
     IInternalGrainFactory internalGrainFactory,
     ISiloStatusOracle siloStatusOracle,
     MembershipTableFactory membershipTableFactory,
     GrainTypeManager grainTypeManager,
     IVersionStore versionStore)
 {
     this.multiClusterOptions    = multiClusterOptions.Value;
     this.multiClusterOracle     = multiClusterOracle;
     this.internalGrainFactory   = internalGrainFactory;
     this.siloStatusOracle       = siloStatusOracle;
     this.membershipTableFactory = membershipTableFactory;
     this.grainTypeManager       = grainTypeManager;
     this.versionStore           = versionStore;
 }
Example #6
0
 public ManagementGrain(
     GlobalConfiguration globalConfig,
     IMultiClusterOracle multiClusterOracle,
     IInternalGrainFactory internalGrainFactory,
     ISiloStatusOracle siloStatusOracle,
     MembershipTableFactory membershipTableFactory,
     GrainTypeManager grainTypeManager,
     IVersionStore versionStore)
 {
     this.globalConfig           = globalConfig;
     this.multiClusterOracle     = multiClusterOracle;
     this.internalGrainFactory   = internalGrainFactory;
     this.siloStatusOracle       = siloStatusOracle;
     this.membershipTableFactory = membershipTableFactory;
     this.grainTypeManager       = grainTypeManager;
     this.versionStore           = versionStore;
 }
Example #7
0
 public RegistrarManager(
     GrainDirectoryPartition directoryPartition,
     GlobalSingleInstanceActivationMaintainer gsiActivationMaintainer,
     GlobalConfiguration globalConfig,
     Logger logger,
     IInternalGrainFactory grainFactory,
     GrainTypeManager grainTypeManager)
 {
     this.grainTypeManager = grainTypeManager;
     this.Register <ClusterLocalRegistration>(new ClusterLocalRegistrar(directoryPartition));
     this.Register <GlobalSingleInstanceRegistration>(
         new GlobalSingleInstanceRegistrar(
             directoryPartition,
             logger,
             gsiActivationMaintainer,
             globalConfig.GlobalSingleInstanceNumberRetries,
             grainFactory));
 }
Example #8
0
        /// <summary>
        /// Constructors -- Registers Orleans system performance counters,
        /// plus any grain-specific activation conters that can be detected when this installer is run.
        /// </summary>
        public OrleansPerformanceCounterInstaller()
        {
            SerializationManager.InitializeForTesting();
            Trace.Listeners.Clear();
            var cfg = new NodeConfiguration {
                TraceFilePattern = null, TraceToConsole = false
            };

            LogManager.Initialize(cfg);

            consumer = new OrleansPerfCounterTelemetryConsumer();

            if (GrainTypeManager.Instance == null)
            {
                var loader      = new SiloAssemblyLoader(new Dictionary <string, SearchOption>());
                var typeManager = new GrainTypeManager(false, null, loader); // We shouldn't need GrainFactory in this case
                GrainTypeManager.Instance.Start(false);
            }
        }
Example #9
0
        /// <summary>
        /// Create the set of Orleans counters, if they do not already exist
        /// </summary>
        /// <param name="useBruteForce">Use brute force, if necessary</param>
        /// <remarks>Note: Program needs to be running as Administrator to be able to register Windows perf counters.</remarks>
        private static void RegisterWindowsPerfCounters(bool useBruteForce)
        {
            try
            {
                if (OrleansPerfCounterTelemetryConsumer.AreWindowsPerfCountersAvailable())
                {
                    if (!useBruteForce)
                    {
                        ConsoleText.WriteStatus("Orleans counters are already registered -- Use brute-force mode to re-initialize");
                        return;
                    }

                    // Delete any old perf counters
                    UnregisterWindowsPerfCounters(true);
                }

                if (GrainTypeManager.Instance == null)
                {
                    var loader      = new SiloAssemblyLoader(new Dictionary <string, SearchOption>());
                    var typeManager = new GrainTypeManager(false, loader, new RandomPlacementDefaultStrategy());
                    GrainTypeManager.Instance.Start(false);
                }
                // Register perf counters
                perfCounterConsumer.InstallCounters();

                if (OrleansPerfCounterTelemetryConsumer.AreWindowsPerfCountersAvailable())
                {
                    ConsoleText.WriteStatus("Orleans counters registered successfully");
                }
                else
                {
                    ConsoleText.WriteError("Orleans counters are NOT registered");
                }
            }
            catch (Exception exc)
            {
                ConsoleText.WriteError("Error registering Orleans counters - {0}" + exc);
                throw;
            }
        }
Example #10
0
        /// <summary>
        /// Create the set of Orleans counters, if they do not already exist
        /// </summary>
        /// <param name="useBruteForce">Use brute force, if necessary</param>
        /// <remarks>Note: Program needs to be running as Administrator to be able to register Windows perf counters.</remarks>
        private static void RegisterWindowsPerfCounters(bool useBruteForce)
        {
            try
            {
                if (OrleansPerfCounterManager.AreWindowsPerfCountersAvailable())
                {
                    if (!useBruteForce)
                    {
                        ConsoleText.WriteStatus("Orleans counters are already registered -- Use brute-force mode to re-initialize");
                        return;
                    }

                    // Delete any old perf counters
                    UnregisterWindowsPerfCounters(true);
                }

                if (GrainTypeManager.Instance == null)
                {
                    var typeManager = new GrainTypeManager(false, null); // We shouldn't need GrainFactory in this case
                    GrainTypeManager.Instance.Start(false);
                }
                // Register perf counters
                OrleansPerfCounterManager.InstallCounters();

                if (OrleansPerfCounterManager.AreWindowsPerfCountersAvailable())
                {
                    ConsoleText.WriteStatus("Orleans counters registered successfully");
                }
                else
                {
                    ConsoleText.WriteError("Orleans counters are NOT registered");
                }
            }
            catch (Exception exc)
            {
                ConsoleText.WriteError("Error registering Orleans counters - {0}" + exc);
                throw;
            }
        }
 public ReentrantTestSupportGrain(GrainTypeManager grainTypeManager)
 {
     this.grainTypeManager = grainTypeManager;
 }
Example #12
0
 public RegistrarManager(IServiceProvider serviceProvider, GrainTypeManager grainTypeManager)
 {
     this.grainTypeManager = grainTypeManager;
     this.serviceProvider  = serviceProvider;
 }