public void Should_ReturnThreeReplicasPerToken() { var target = new SimpleStrategy(2); var testData = ReplicationStrategyTestData.Create(); var result = target.ComputeTokenToReplicaMap( testData.Ring, testData.PrimaryReplicas, testData.NumberOfHostsWithTokens, testData.Datacenters); // 3 dcs, 3 hosts per rack, 3 racks per dc, 10 tokens per host Assert.AreEqual(10 * 3 * 3 * 3, result.Count); foreach (var token in result) { Assert.AreEqual(2, token.Value.Count); } }
public void Should_ReturnAllReplicasPerToken() { var target = EverywhereStrategy.Instance; var testData = ReplicationStrategyTestData.Create( numberOfHostsPerRack: 3, numberOfRacksPerDc: 2, numberOfTokensPerHost: 10); var result = target.ComputeTokenToReplicaMap( testData.Ring, testData.PrimaryReplicas, testData.NumberOfHostsWithTokens, testData.Datacenters); // 3 dcs, 3 hosts per rack, 2 racks per dc, 10 tokens per host Assert.AreEqual(10 * 3 * 2 * 3, result.Count); foreach (var token in result) { Assert.AreEqual(3 * 3 * 2, token.Value.Count); } }
public void Should_ReturnAppropriateReplicasPerDcPerToken() { var target = new NetworkTopologyStrategy( new Dictionary <string, ReplicationFactor> { { "dc1", ReplicationFactor.Parse("2") }, { "dc2", ReplicationFactor.Parse("3/1") }, { "dc3", ReplicationFactor.Parse("3/2") } }); var testData = ReplicationStrategyTestData.Create(); var result = target.ComputeTokenToReplicaMap( testData.Ring, testData.PrimaryReplicas, testData.NumberOfHostsWithTokens, testData.Datacenters); // 3 dcs, 3 hosts per rack, 3 racks per dc, 10 tokens per host Assert.AreEqual(10 * 3 * 3 * 3, result.Count); foreach (var token in result) { // 2 for dc1, 2 for dc2, 1 for dc3 Assert.AreEqual(2 + 2 + 1, token.Value.Count); } }