/// <summary>
            /// Submits two contexts, one that fails the Evaluator and another that allows for
            /// Context Stacking.
            /// </summary>
            public void OnNext(IAllocatedEvaluator value)
            {
                lock (_lock)
                {
                    if (_shouldFailOnRootContext)
                    {
                        // Failing config.
                        var ctxConf = ContextConfiguration.ConfigurationModule
                                      .Set(ContextConfiguration.Identifier, Context0)
                                      .Build();

                        var serviceConf = ServiceConfiguration.ConfigurationModule
                                          .Set(ServiceConfiguration.Services, GenericType <ServiceConstructorExceptionService> .Class)
                                          .Build();

                        value.SubmitContextAndService(ctxConf, serviceConf);
                        _shouldFailOnRootContext = false;
                    }
                    else
                    {
                        // Context stacking config.
                        value.SubmitContext(
                            ContextConfiguration.ConfigurationModule
                            .Set(ContextConfiguration.Identifier, Context1)
                            .Build());
                    }
                }
            }
Esempio n. 2
0
        public void OnNext(IAllocatedEvaluator allocatedEvaluator)
        {
            IConfiguration contextConfiguration = _groupCommDriver.GetContextConfiguration();

            int partitionNum;

            if (_groupCommDriver.IsMasterContextConfiguration(contextConfiguration))
            {
                partitionNum = -1;
            }
            else
            {
                lock (_lockObj)
                {
                    partitionNum = _partitionInex;
                    _partitionInex++;
                }
            }

            IConfiguration gcServiceConfiguration = _groupCommDriver.GetServiceConfiguration();

            gcServiceConfiguration = Configurations.Merge(gcServiceConfiguration, _centroidCodecConf, _controlMessageCodecConf, _processedResultsCodecConf);
            IConfiguration commonServiceConfiguration = TangFactory.GetTang().NewConfigurationBuilder(gcServiceConfiguration)
                                                        .BindNamedParameter <DataPartitionCache.PartitionIndex, int>(GenericType <DataPartitionCache.PartitionIndex> .Class, partitionNum.ToString(CultureInfo.InvariantCulture))
                                                        .BindNamedParameter <KMeansConfiguratioinOptions.ExecutionDirectory, string>(GenericType <KMeansConfiguratioinOptions.ExecutionDirectory> .Class, _executionDirectory)
                                                        .BindNamedParameter <KMeansConfiguratioinOptions.TotalNumEvaluators, int>(GenericType <KMeansConfiguratioinOptions.TotalNumEvaluators> .Class, _totalEvaluators.ToString(CultureInfo.InvariantCulture))
                                                        .BindNamedParameter <KMeansConfiguratioinOptions.K, int>(GenericType <KMeansConfiguratioinOptions.K> .Class, _clustersNumber.ToString(CultureInfo.InvariantCulture))
                                                        .Build();

            IConfiguration dataCacheServiceConfiguration = ServiceConfiguration.ConfigurationModule
                                                           .Set(ServiceConfiguration.Services, GenericType <DataPartitionCache> .Class)
                                                           .Build();

            allocatedEvaluator.SubmitContextAndService(contextConfiguration, Configurations.Merge(commonServiceConfiguration, dataCacheServiceConfiguration));
        }
Esempio n. 3
0
        /// <summary>
        /// Specifies context and service configuration for evaluator depending
        /// on whether it is for Update function or for map function
        /// </summary>
        /// <param name="allocatedEvaluator">The allocated evaluator</param>
        public void OnNext(IAllocatedEvaluator allocatedEvaluator)
        {
            var configs =
                _serviceAndContextConfigurationProvider.GetContextConfigurationForEvaluatorById(allocatedEvaluator.Id);

            allocatedEvaluator.SubmitContextAndService(configs.Context, configs.Service);
        }
        public void OnNext(IAllocatedEvaluator allocatedEvaluator)
        {
            IConfiguration contextConf = _groupCommDriver.GetContextConfiguration();
            IConfiguration serviceConf = _groupCommDriver.GetServiceConfiguration();

            serviceConf = Configurations.Merge(serviceConf, _tcpPortProviderConfig, _codecConfig);
            allocatedEvaluator.SubmitContextAndService(contextConf, serviceConf);
        }
Esempio n. 5
0
        public void OnNext(IAllocatedEvaluator value)
        {
            Logger.Log(Level.Info, "Received IAllocatedEvaluator");
            UpdateMetrics(TestSystemState.EvaluatorAllocated);

            const string contextId            = "ContextID";
            var          serviceConfiguration = ServiceConfiguration.ConfigurationModule
                                                .Build();

            var contextConfiguration1 = ContextConfiguration.ConfigurationModule
                                        .Set(ContextConfiguration.Identifier, contextId)
                                        .Build();

            var contextConfiguration2 = MessageSenderConfigurationModule.ConfigurationModule.Build();

            var contextConfiguration = Configurations.Merge(contextConfiguration1, contextConfiguration2);

            value.SubmitContextAndService(contextConfiguration, serviceConfiguration);
        }
Esempio n. 6
0
        /// <summary>
        /// Gets context and service configuration for evaluator depending
        /// on whether it is for update/master function or for mapper function.
        /// Then submits Context and Service with the corresponding configuration
        /// </summary>
        /// <param name="allocatedEvaluator"></param>
        private void SubmitContextAndService(IAllocatedEvaluator allocatedEvaluator)
        {
            ContextAndServiceConfiguration configs;

            if (_evaluatorManager.IsMasterEvaluatorId(allocatedEvaluator.Id))
            {
                configs =
                    _serviceAndContextConfigurationProvider
                    .GetContextConfigurationForMasterEvaluatorById(
                        allocatedEvaluator.Id);
            }
            else
            {
                configs = _serviceAndContextConfigurationProvider
                          .GetDataLoadingConfigurationForEvaluatorById(
                    allocatedEvaluator.Id);
            }
            allocatedEvaluator.SubmitContextAndService(configs.Context, configs.Service);
        }
Esempio n. 7
0
        public void OnNext(IAllocatedEvaluator value)
        {
            Logger.Log(Level.Info, "Received IAllocatedEvaluator");
            const string contextId = "ContextID";

            var serviceConfiguration = ServiceConfiguration.ConfigurationModule
                                       .Build();

            var contextConfiguration1 = ContextConfiguration.ConfigurationModule
                                        .Set(ContextConfiguration.Identifier, contextId)
                                        ////.Set(ContextConfiguration.OnSendMessage, GenericType<MetricsMessageSender>.Class)
                                        .Build();

            var contextConfiguration2 = MessageSenderConfigurationModule.ConfigurationModule.Build();

            var contextConfiguration = Configurations.Merge(contextConfiguration1, contextConfiguration2);

            value.SubmitContextAndService(contextConfiguration, serviceConfiguration);
        }