コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }