public override void When() { // The EpochManager for these tests only caches 5 epochs // Epochs 2 and 3 don't exist EpochManager.WriteNewEpoch(0); Writer.Write(CreateLogRecord(0), out _); EpochManager.WriteNewEpoch(1); Writer.Write(CreateLogRecord(1), out _); _uncachedLeaderEpochs = EpochManager.GetLastEpochs(2); EpochManager.WriteNewEpoch(4); Writer.Write(CreateLogRecord(2), out _); EpochManager.WriteNewEpoch(5); Writer.Write(CreateLogRecord(3), out _); EpochManager.WriteNewEpoch(6); Writer.Write(CreateLogRecord(4), out _); EpochManager.WriteNewEpoch(7); Writer.Write(CreateLogRecord(5), out _); EpochManager.WriteNewEpoch(8); _replicaEpochs = new List <Epoch> { new Epoch(_uncachedLeaderEpochs[0].EpochPosition + 8000, 3, Guid.NewGuid()), new Epoch(_uncachedLeaderEpochs[0].EpochPosition + 4000, 2, Guid.NewGuid()), new Epoch(_uncachedLeaderEpochs[0].EpochPosition, _uncachedLeaderEpochs[0].EpochNumber, _uncachedLeaderEpochs[0].EpochId), new Epoch(_uncachedLeaderEpochs[1].EpochPosition, _uncachedLeaderEpochs[1].EpochNumber, _uncachedLeaderEpochs[1].EpochId) }; AddSubscription(_replicaId, true, _replicaEpochs.ToArray(), _replicaEpochs[0].EpochPosition, out _replicaManager); }
public void subscription_is_sent_a_replica_subscribed_message_to_epoch_position_after_common_epoch() { var subscribed = GetTcpSendsFor(_replicaManager).Select(x => x.Message) .OfType <ReplicationMessage.ReplicaSubscribed>().ToArray(); Assert.AreEqual(1, subscribed.Length); Assert.AreEqual(EpochManager.GetLastEpochs(5).First(x => x.EpochNumber == 4).EpochPosition, subscribed[0].SubscriptionPosition); Assert.AreEqual(_replicaId, subscribed[0].SubscriptionId); Assert.AreEqual(LeaderId, subscribed[0].LeaderId); }
public override void When() { EpochManager.WriteNewEpoch(0); Writer.Write(CreateLogRecord(0), out _); Writer.Write(CreateLogRecord(1), out _); Writer.Write(CreateLogRecord(2), out _); Writer.Write(CreateLogRecord(3), out _); Writer.Write(CreateLogRecord(4), out _subscribedPosition); EpochManager.WriteNewEpoch(1); _lastEpoch = EpochManager.GetLastEpoch(); var epochs = EpochManager.GetLastEpochs(10) .Select(e => new Epoch(e.EpochPosition, e.EpochNumber, e.EpochId)).ToArray(); AddSubscription(_replicaId, true, epochs, _subscribedPosition, out _replicaManager); }
public override void When() { EpochManager.WriteNewEpoch(0); Writer.Write(CreateLogRecord(0), out _); Writer.Write(CreateLogRecord(1), out _); Writer.Write(CreateLogRecord(2), out var otherEpochLogPosition); Writer.Write(CreateLogRecord(3), out _); Writer.Write(CreateLogRecord(4), out _); EpochManager.WriteNewEpoch(2); var firstEpoch = EpochManager.GetLastEpochs(10).First(e => e.EpochNumber == 0); _replicaEpochs = new List <Epoch> { new Epoch(otherEpochLogPosition, 1, Guid.NewGuid()), new Epoch(firstEpoch.EpochPosition, firstEpoch.EpochNumber, firstEpoch.EpochId) }; AddSubscription(_replicaId, true, _replicaEpochs.ToArray(), _replicaEpochs[0].EpochPosition, out _replicaManager); }
public override void When() { EpochManager.WriteNewEpoch(0); Writer.Write(CreateLogRecord(0), out _); Writer.Write(CreateLogRecord(1), out _); Writer.Write(CreateLogRecord(2), out _); Writer.Write(CreateLogRecord(3), out _); Writer.Write(CreateLogRecord(4), out _); EpochManager.WriteNewEpoch(1); var subscribePosition = Db.Config.WriterCheckpoint.ReadNonFlushed() + 1000; _replicaEpochs = new List <Epoch> { new Epoch(subscribePosition, 2, Guid.NewGuid()), }; _replicaEpochs.AddRange(EpochManager.GetLastEpochs(10) .Select(e => new Epoch(e.EpochPosition, e.EpochNumber, e.EpochId)).ToList()); AddSubscription(_replicaId, true, _replicaEpochs.ToArray(), subscribePosition, out _replicaManager); }
public override void When() { EpochManager.WriteNewEpoch(0); Writer.Write(CreateLogRecord(0), out _); EpochManager.WriteNewEpoch(1); // The EpochManager for these tests only caches 5 epochs _replicaEpochs = EpochManager.GetLastEpochs(2) .Select(e => new Epoch(e.EpochPosition, e.EpochNumber, e.EpochId)).ToList(); Writer.Write(CreateLogRecord(1), out _); EpochManager.WriteNewEpoch(2); Writer.Write(CreateLogRecord(2), out _); EpochManager.WriteNewEpoch(3); Writer.Write(CreateLogRecord(3), out _); EpochManager.WriteNewEpoch(4); Writer.Write(CreateLogRecord(4), out _); EpochManager.WriteNewEpoch(5); Writer.Write(CreateLogRecord(5), out _); EpochManager.WriteNewEpoch(6); AddSubscription(_replicaId, true, _replicaEpochs.ToArray(), _replicaEpochs[0].EpochPosition, out _replicaManager); }
public override void When() { EpochManager.WriteNewEpoch(0); Writer.Write(CreateLogRecord(0), out _); Writer.Write(CreateLogRecord(1), out _); Writer.Write(CreateLogRecord(2), out _); Writer.Write(CreateLogRecord(3), out _); Writer.Write(CreateLogRecord(4), out _); EpochManager.WriteNewEpoch(1); Writer.Write(CreateLogRecord(5), out _); Writer.Write(CreateLogRecord(6), out _); Writer.Write(CreateLogRecord(7), out var lastWritePosition); Writer.Flush(); _replicaEpochs = new List <Epoch> { new Epoch(lastWritePosition + 2000, 4, Guid.NewGuid()), new Epoch(lastWritePosition + 1000, 3, Guid.NewGuid()), new Epoch(lastWritePosition, 2, Guid.NewGuid()), }; _replicaEpochs.AddRange(EpochManager.GetLastEpochs(10) .Select(e => new Epoch(e.EpochPosition, e.EpochNumber, e.EpochId)).ToList()); AddSubscription(_replicaId, true, _replicaEpochs.ToArray(), lastWritePosition + 2000, out _replicaManager); }