diff options
author | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-02-12 15:32:20 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-02-12 15:35:19 +0000 |
commit | a5f49846238184c86a58147053e0f4aa2edd9cd7 (patch) | |
tree | 118e30c6fa2358f7466b1be3f1f3b79805a53ab6 /vdslib | |
parent | c675f4cd46994eea075ce47a66bf4400ccf8ada8 (diff) |
Derive correct distribution partition spec for grouped clusters
Simplify code by emitting wildcards for all groups instead of using
explicit leaf counts. Distribution code will distribute replicas
evenly across all wildcarded groups.
This fixes #8475
Diffstat (limited to 'vdslib')
-rw-r--r-- | vdslib/src/tests/state/grouptest.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/vdslib/src/tests/state/grouptest.cpp b/vdslib/src/tests/state/grouptest.cpp index 282e91e860f..94694154b83 100644 --- a/vdslib/src/tests/state/grouptest.cpp +++ b/vdslib/src/tests/state/grouptest.cpp @@ -181,6 +181,12 @@ void GroupTest::testStarConversion() { { + MAKEGROUP(g, "group", 0, "*"); + std::vector<double> distribution = g.getDistribution(3); + CPPUNIT_ASSERT_EQUAL((size_t) 1, distribution.size()); + CPPUNIT_ASSERT_EQUAL((double) 3, distribution[0]); + } + { MAKEGROUP(g, "group", 0, "1|*|*"); std::vector<double> distribution = g.getDistribution(5); CPPUNIT_ASSERT_EQUAL((size_t) 3, distribution.size()); @@ -245,6 +251,14 @@ GroupTest::testStarConversion() CPPUNIT_ASSERT_EQUAL((double) 1, distribution[2]); } { + MAKEGROUP(g, "group", 0, "*|*|*"); + std::vector<double> distribution = g.getDistribution(12); // Shall be evenly divided + CPPUNIT_ASSERT_EQUAL((size_t) 3, distribution.size()); + CPPUNIT_ASSERT_EQUAL((double) 4, distribution[0]); + CPPUNIT_ASSERT_EQUAL((double) 4, distribution[1]); + CPPUNIT_ASSERT_EQUAL((double) 4, distribution[2]); + } + { MAKEGROUP(g, "group", 0, "*|*|*|*"); std::vector<double> distribution = g.getDistribution(5); CPPUNIT_ASSERT_EQUAL((size_t) 4, distribution.size()); |