private void Handle(SystemMessage.EpochWritten msg)
 {
     lock (_lock){
         _epochIds.Add(msg.Epoch.EpochId);
     }
     _expectedNumberOfEvents?.Signal();
 }
Exemplo n.º 2
0
        public void Handle(SystemMessage.EpochWritten received)
        {
            if (_managerState != ManagerState.WritingEpoch)
            {
                Ignore(received, "Not writing epoch.");
            }
            else if (received.Epoch.EpochNumber != _currentEpochNumber)
            {
                Ignore(
                    received,
                    "Current epoch number is {currentEpochNumber} but received {receivedEpochNumber}.",
                    _currentEpochNumber,
                    received.Epoch.EpochNumber);
            }
            else
            {
                Respond(received, new SystemMessage.EnablePreLeaderReplication());
                _managerState = ManagerState.WaitingForConditions;

                // want to replicate past the start of the epoch we just wrote.
                _replicationCheckpointTarget = received.Epoch.EpochPosition + 1;

                // and index past it too, to the $epoch-information event that immediately follows it
                _indexCheckpointTarget = received.Epoch.EpochPosition + 1;

                ConsiderBecomingLeader(received, log: true);
                _publisher.Publish(_scheduleCheckInaugurationConditions);
            }
        }
        public void Handle(SystemMessage.EpochWritten message)
        {
            if (_ready)
            {
                return;
            }

            if (_currentState == VNodeState.Master)
            {
                _epochId = message.Epoch.EpochId;
                _ready   = true;
            }

            StartWhenConditionsAreMet();
        }
 private void Handle(SystemMessage.EpochWritten msg)
 {
     _epochIds.Add(msg.Epoch.EpochId);
 }
 private void Handle(SystemMessage.EpochWritten msg)
 {
     _epochIds.Add(msg.Epoch.EpochId);
     _waitForStart.Set();
 }