diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-02-19 05:11:08 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-02-19 07:19:55 +0000 |
commit | d29666a12b9777829c328310ddff6af2580e59c5 (patch) | |
tree | 4c4b26c17af397fb6577cfa506c25e27bd24a41f /vdslib | |
parent | 0be286e9026e96f8a1b032a2f2a08e943cf771ec (diff) |
- Reduce visibility of ClusterState and Distribution.
Diffstat (limited to 'vdslib')
9 files changed, 27 insertions, 51 deletions
diff --git a/vdslib/src/tests/distribution/distributiontest.cpp b/vdslib/src/tests/distribution/distributiontest.cpp index a1c5e541f3b..7210ebd960d 100644 --- a/vdslib/src/tests/distribution/distributiontest.cpp +++ b/vdslib/src/tests/distribution/distributiontest.cpp @@ -7,6 +7,7 @@ #include <vespa/fastos/file.h> #include <vespa/vdslib/distribution/distribution.h> #include <vespa/vdslib/distribution/idealnodecalculator.h> +#include <vespa/vdslib/state/clusterstate.h> #include <vespa/vdslib/state/random.h> #include <vespa/vespalib/data/slime/slime.h> #include <vespa/vespalib/gtest/gtest.h> @@ -39,14 +40,13 @@ TEST(DistributionTest, test_verify_java_distributions) tests.push_back("retired"); for (uint32_t i=0; i<tests.size(); ++i) { std::string test = tests[i]; - ClusterState state; + std::string mystate; { std::ifstream in("distribution/testdata/java_" + test + ".state"); - std::string mystate; in >> mystate; in.close(); - state = ClusterState(mystate); } + ClusterState state(mystate); Distribution distr(readConfig<vespa::config::content::StorDistributionConfig>( "file:distribution/testdata/java_" + test + ".cfg")); std::ofstream of("distribution/testdata/cpp_" + test + ".distribution"); @@ -499,21 +499,21 @@ TEST(DistributionTest, test_move) TEST(DistributionTest, test_move_constraints) { - ClusterState systemState("storage:10"); + ClusterState clusterState("storage:10"); Distribution distr(Distribution::getDefaultDistributionConfig(3, 12)); std::vector<std::vector<uint16_t> > initBuckets(10000); for (unsigned i = 0; i < initBuckets.size(); i++) { initBuckets[i] = distr.getIdealStorageNodes( - systemState, document::BucketId(16, i)); + clusterState, document::BucketId(16, i)); sort(initBuckets[i].begin(), initBuckets[i].end()); } { // Check that adding a down node has no effect std::vector<std::vector<uint16_t> > addedDownBuckets(10000); - systemState = ClusterState("storage:11 .10.s:d"); + ClusterState systemState("storage:11 .10.s:d"); for (unsigned i = 0; i < addedDownBuckets.size(); i++) { addedDownBuckets[i] = distr.getIdealStorageNodes( @@ -537,7 +537,7 @@ TEST(DistributionTest, test_move_constraints) // Check that if we disable one node, we're not moving stuff away from // any other node std::vector<std::vector<uint16_t> > removed0Buckets(10000); - systemState = ClusterState("storage:10 .0.s:d"); + ClusterState systemState("storage:10 .0.s:d"); for (unsigned i = 0; i < removed0Buckets.size(); i++) { removed0Buckets[i] = distr.getIdealStorageNodes( @@ -568,7 +568,7 @@ TEST(DistributionTest, test_move_constraints) // Check that if we're adding one node, we're not moving stuff to any // other node std::vector<std::vector<uint16_t> > added10Buckets(10000); - systemState = ClusterState("storage:11"); + ClusterState systemState("storage:11"); for (unsigned i = 0; i < added10Buckets.size(); i++) { added10Buckets[i] = distr.getIdealStorageNodes( @@ -823,10 +823,9 @@ TEST(DistributionTest, test_hierarchical_no_redistribution) EXPECT_EQ(0, v.size()); v.clear(); - state = ClusterState( - "distributor:5 .0.s:d storage:5 .0.s:d .1.s:d .1.m:foo\\x20bar"); + ClusterState state2("distributor:5 .0.s:d storage:5 .0.s:d .1.s:d .1.m:foo\\x20bar"); std::ostringstream ost; - state.printStateGroupwise(ost, distribution, true, ""); + state2.printStateGroupwise(ost, distribution, true, ""); EXPECT_EQ(std::string("\n" "ClusterState(Version: 0, Cluster state: Up, Distribution bits: 16) {\n" " Top group. 2 branches with distribution *|* {\n" diff --git a/vdslib/src/tests/distribution/idealnodecalculatorimpltest.cpp b/vdslib/src/tests/distribution/idealnodecalculatorimpltest.cpp index f54c94ae8f9..5bca51f8111 100644 --- a/vdslib/src/tests/distribution/idealnodecalculatorimpltest.cpp +++ b/vdslib/src/tests/distribution/idealnodecalculatorimpltest.cpp @@ -2,6 +2,8 @@ #include <vespa/config-stor-distribution.h> #include <vespa/vdslib/distribution/idealnodecalculatorimpl.h> +#include <vespa/vdslib/distribution/distribution.h> +#include <vespa/vdslib/state/clusterstate.h> #include <vespa/vespalib/gtest/gtest.h> namespace storage::lib { diff --git a/vdslib/src/vespa/vdslib/distribution/distribution.cpp b/vdslib/src/vespa/vdslib/distribution/distribution.cpp index e622d0fd0d9..d51e9ee4f49 100644 --- a/vdslib/src/vespa/vdslib/distribution/distribution.cpp +++ b/vdslib/src/vespa/vdslib/distribution/distribution.cpp @@ -1,7 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "distribution.h" -#include <vespa/vdslib/distribution/distribution_config_util.h> +#include "distribution_config_util.h" #include <vespa/vdslib/state/clusterstate.h> #include <vespa/vdslib/state/random.h> #include <vespa/vespalib/util/bobhash.h> @@ -106,18 +106,8 @@ Distribution::Distribution(const vespalib::string& serialized) configure(*reader.read()); } -Distribution& -Distribution::operator=(const Distribution& d) -{ - vespalib::asciistream ist(d.serialize()); - config::AsciiConfigReader<vespa::config::content::StorDistributionConfig> reader(ist); - configure(*reader.read()); - return *this; -} - Distribution::~Distribution() = default; - void Distribution::configure(const vespa::config::content::StorDistributionConfig& config) { diff --git a/vdslib/src/vespa/vdslib/distribution/distribution.h b/vdslib/src/vespa/vdslib/distribution/distribution.h index 407740e2bc7..aef48b0c09c 100644 --- a/vdslib/src/vespa/vdslib/distribution/distribution.h +++ b/vdslib/src/vespa/vdslib/distribution/distribution.h @@ -112,7 +112,7 @@ public: Distribution(const vespalib::string& serialized); ~Distribution(); - Distribution& operator=(const Distribution&); + Distribution& operator=(const Distribution&) = delete; const vespalib::string& serialize() const { return _serialized; } diff --git a/vdslib/src/vespa/vdslib/distribution/group.h b/vdslib/src/vespa/vdslib/distribution/group.h index d6af005130d..3ce7f9c7a7a 100644 --- a/vdslib/src/vespa/vdslib/distribution/group.h +++ b/vdslib/src/vespa/vdslib/distribution/group.h @@ -21,14 +21,11 @@ namespace vespalib { class asciistream; } namespace storage::lib { -class IdealGroup; -class SystemState; - class Group : public document::Printable { public: - typedef std::unique_ptr<Group> UP; - typedef RedundancyGroupDistribution Distribution; + using UP = std::unique_ptr<Group>; + using Distribution = RedundancyGroupDistribution ; private: vespalib::string _name; diff --git a/vdslib/src/vespa/vdslib/distribution/idealnodecalculator.h b/vdslib/src/vespa/vdslib/distribution/idealnodecalculator.h index d1be4a2229c..ecb7beed140 100644 --- a/vdslib/src/vespa/vdslib/distribution/idealnodecalculator.h +++ b/vdslib/src/vespa/vdslib/distribution/idealnodecalculator.h @@ -7,12 +7,15 @@ #pragma once #include <vespa/document/bucket/bucketid.h> -#include <vespa/vdslib/state/clusterstate.h> -#include <vespa/vdslib/distribution/distribution.h> -#include <vespa/vdslib/state/nodetype.h> +#include <vespa/document/util/printable.h> +#include <vespa/vdslib/state/node.h> +#include <vector> namespace storage::lib { +class Distribution; +class ClusterState; + /** * A list of ideal nodes, sorted in preferred order. Wraps a vector to hide * unneeded details, and make it easily printable. diff --git a/vdslib/src/vespa/vdslib/distribution/idealnodecalculatorimpl.cpp b/vdslib/src/vespa/vdslib/distribution/idealnodecalculatorimpl.cpp index 8379018d4d7..c9732f1af8b 100644 --- a/vdslib/src/vespa/vdslib/distribution/idealnodecalculatorimpl.cpp +++ b/vdslib/src/vespa/vdslib/distribution/idealnodecalculatorimpl.cpp @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "idealnodecalculatorimpl.h" +#include "distribution.h" #include <vespa/vespalib/util/exceptions.h> #include <ostream> #include <cassert> diff --git a/vdslib/src/vespa/vdslib/state/clusterstate.cpp b/vdslib/src/vespa/vdslib/state/clusterstate.cpp index 983018c2a21..cc863fd6f48 100644 --- a/vdslib/src/vespa/vdslib/state/clusterstate.cpp +++ b/vdslib/src/vespa/vdslib/state/clusterstate.cpp @@ -13,8 +13,7 @@ LOG_SETUP(".vdslib.state.cluster"); using vespalib::IllegalArgumentException; -namespace storage { -namespace lib { +namespace storage::lib { ClusterState::ClusterState() : Printable(), @@ -27,7 +26,7 @@ ClusterState::ClusterState() { } ClusterState::ClusterState(const ClusterState& other) = default; -ClusterState::~ClusterState() { } +ClusterState::~ClusterState() = default; struct NodeData { bool empty; @@ -244,20 +243,6 @@ ClusterState::serialize(vespalib::asciistream & out, bool ignoreNewFeatures) con } } -ClusterState& -ClusterState::operator=(const ClusterState& other) -{ - if (this != &other) { - _version = other._version; - _clusterState = other._clusterState; - _nodeStates = other._nodeStates; - _nodeCount = other._nodeCount; - _description = other._description; - _distributionBits = other._distributionBits; - } - return *this; -} - bool ClusterState::operator==(const ClusterState& other) const { @@ -515,5 +500,4 @@ ClusterState::printStateGroupwise(std::ostream& out, const Group& group, out << "\n" << indent << "}"; } -} // lib -} // storage +} diff --git a/vdslib/src/vespa/vdslib/state/clusterstate.h b/vdslib/src/vespa/vdslib/state/clusterstate.h index 723703a1aa5..6f196f04626 100644 --- a/vdslib/src/vespa/vdslib/state/clusterstate.h +++ b/vdslib/src/vespa/vdslib/state/clusterstate.h @@ -39,12 +39,12 @@ public: // FIXME make ClusterState parsing not require null termination of string, // then move to vespalib::stringref explicit ClusterState(const vespalib::string& serialized); + ClusterState& operator=(const ClusterState& other) = delete; ~ClusterState(); std::string getTextualDifference(const ClusterState& other) const; void serialize(vespalib::asciistream & out, bool ignoreNewFeatures) const; - ClusterState& operator=(const ClusterState& other); bool operator==(const ClusterState& other) const; bool operator!=(const ClusterState& other) const; |