Ejemplo n.º 1
0
        public void TestFailedNodeDuringTaskSubmittingThenRecovery()
        {
            var systemState = new SystemStateMachine();

            systemState.MoveNext(SystemStateEvent.AllContextsAreReady);
            Assert.True(systemState.MoveNext(SystemStateEvent.FailedNode).Equals(SystemState.ShuttingDown), "Fail to move from SubmittingTasks state to ShuttingDown state.");
            Assert.True(systemState.MoveNext(SystemStateEvent.Recover).Equals(SystemState.WaitingForEvaluator), "Fail to move from ShuttingDown state to WaitingForEvaluator state.");
        }
Ejemplo n.º 2
0
        public void TestFailedNodeDuringTaskSubmittingThenFail()
        {
            var systemState = new SystemStateMachine();

            systemState.MoveNext(SystemStateEvent.AllContextsAreReady);
            Assert.True(systemState.MoveNext(SystemStateEvent.FailedNode).Equals(SystemState.ShuttingDown), "Fail to move from SubmittingTasks state to ShuttingDown state.");
            Assert.True(systemState.MoveNext(SystemStateEvent.NotRecoverable).Equals(SystemState.Fail), "Fail to move from ShuttingDown state to Fail state.");
        }
Ejemplo n.º 3
0
        public void TestFromRequestEvaluatorToTasksComplete()
        {
            var systemState = new SystemStateMachine();

            Assert.True(systemState.CurrentState.Equals(SystemState.WaitingForEvaluator), "The initial state should be WaitingForEvaluator.");
            Assert.True(systemState.MoveNext(SystemStateEvent.FailedNode).Equals(SystemState.WaitingForEvaluator), "Fail to stay at WaitingForEvaluator state.");
            Assert.True(systemState.MoveNext(SystemStateEvent.AllContextsAreReady).Equals(SystemState.SubmittingTasks), "Fail to move from WaitingForEvaluator state to SubmittingTasks state.");
            Assert.True(systemState.MoveNext(SystemStateEvent.AllTasksAreRunning).Equals(SystemState.TasksRunning), "Fail to move from SubmittingTasks state to TasksRunning state.");
            Assert.True(systemState.MoveNext(SystemStateEvent.AllTasksAreCompleted).Equals(SystemState.TasksCompleted), "Fail to move from TasksRunning state to TasksCompleted state.");
        }
Ejemplo n.º 4
0
        private IMRUDriver(IPartitionedInputDataSet dataSet,
                           [Parameter(typeof(PerMapConfigGeneratorSet))] ISet <IPerMapperConfigGenerator> perMapperConfigs,
                           ConfigurationManager configurationManager,
                           IEvaluatorRequestor evaluatorRequestor,
                           [Parameter(typeof(CoresPerMapper))] int coresPerMapper,
                           [Parameter(typeof(CoresForUpdateTask))] int coresForUpdateTask,
                           [Parameter(typeof(MemoryPerMapper))] int memoryPerMapper,
                           [Parameter(typeof(MemoryForUpdateTask))] int memoryForUpdateTask,
                           [Parameter(typeof(AllowedFailedEvaluatorsFraction))] double failedEvaluatorsFraction,
                           [Parameter(typeof(MaxRetryNumberInRecovery))] int maxRetryNumberInRecovery,
                           [Parameter(typeof(InvokeGC))] bool invokeGC,
                           IGroupCommDriver groupCommDriver,
                           INameServer nameServer)
        {
            _configurationManager           = configurationManager;
            _groupCommDriver                = groupCommDriver;
            _nameServer                     = nameServer;
            _perMapperConfigs               = perMapperConfigs;
            _totalMappers                   = dataSet.Count;
            _invokeGC                       = invokeGC;
            _maxRetryNumberForFaultTolerant = maxRetryNumberInRecovery > 0 ? maxRetryNumberInRecovery : DefaultMaxNumberOfRetryInRecovery;

            _contextManager = new ActiveContextManager(_totalMappers + 1);
            _contextManager.Subscribe(this);

            var updateSpec = new EvaluatorSpecification(memoryForUpdateTask, coresForUpdateTask);
            var mapperSpec = new EvaluatorSpecification(memoryPerMapper, coresPerMapper);
            var allowedFailedEvaluators = (int)(failedEvaluatorsFraction * _totalMappers);

            _evaluatorManager = new EvaluatorManager(_totalMappers + 1, allowedFailedEvaluators, evaluatorRequestor, updateSpec, mapperSpec);

            _systemState = new SystemStateMachine();
            _serviceAndContextConfigurationProvider =
                new ServiceAndContextConfigurationProvider <TMapInput, TMapOutput, TPartitionType>(dataSet, configurationManager);

            var msg =
                string.Format(CultureInfo.InvariantCulture, "map task memory:{0}, update task memory:{1}, map task cores:{2}, update task cores:{3}, maxRetry {4}, allowedFailedEvaluators {5}.",
                              memoryPerMapper,
                              memoryForUpdateTask,
                              coresPerMapper,
                              coresForUpdateTask,
                              _maxRetryNumberForFaultTolerant,
                              allowedFailedEvaluators);

            Logger.Log(Level.Info, msg);
        }
Ejemplo n.º 5
0
        public void TestNoRecoverableFailedEvaluatorDuringWaitingForEvaluator()
        {
            var systemState = new SystemStateMachine();

            Assert.True(systemState.MoveNext(SystemStateEvent.NotRecoverable).Equals(SystemState.Fail), "Fail to move from WaitingForEvaluator state to Fail state.");
        }
 public GlobalPauseDisabledStimuli(bool defaultValue)
 {
     _stateMachine = MonoBehaviour.FindObjectOfType<SystemStateMachine>();
     _stateMachineGlobalPauseEnabledValue = defaultValue;
 }