aboutsummaryrefslogtreecommitdiffstats
path: root/vdslib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-02-19 05:11:08 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-02-19 07:19:55 +0000
commitd29666a12b9777829c328310ddff6af2580e59c5 (patch)
tree4c4b26c17af397fb6577cfa506c25e27bd24a41f /vdslib
parent0be286e9026e96f8a1b032a2f2a08e943cf771ec (diff)
- Reduce visibility of ClusterState and Distribution.
Diffstat (limited to 'vdslib')
-rw-r--r--vdslib/src/tests/distribution/distributiontest.cpp21
-rw-r--r--vdslib/src/tests/distribution/idealnodecalculatorimpltest.cpp2
-rw-r--r--vdslib/src/vespa/vdslib/distribution/distribution.cpp12
-rw-r--r--vdslib/src/vespa/vdslib/distribution/distribution.h2
-rw-r--r--vdslib/src/vespa/vdslib/distribution/group.h7
-rw-r--r--vdslib/src/vespa/vdslib/distribution/idealnodecalculator.h9
-rw-r--r--vdslib/src/vespa/vdslib/distribution/idealnodecalculatorimpl.cpp1
-rw-r--r--vdslib/src/vespa/vdslib/state/clusterstate.cpp22
-rw-r--r--vdslib/src/vespa/vdslib/state/clusterstate.h2
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;