summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2021-04-22 14:36:53 +0000
committerGeir Storli <geirst@verizonmedia.com>2021-04-22 14:36:53 +0000
commit3615b15a8d70e5f1a8d918eb94e0db7c6e45764f (patch)
treecd06eadef4306bccd3ec2a8b22238e8beae6897d /storage
parent5806487d50f015cf84475ba29f3a0b6f51dd10d8 (diff)
Propagate num_distributor_stripes cfg to Distributor ctor and instantiate BucketDBUpdater if needed.
At the same time remove the manageActiveBucketCopies flag, which has been true since the Storage provider was removed years ago.
Diffstat (limited to 'storage')
-rw-r--r--storage/src/tests/distributor/distributortestutil.cpp2
-rw-r--r--storage/src/vespa/storage/distributor/distributor.cpp14
-rw-r--r--storage/src/vespa/storage/distributor/distributor.h2
-rw-r--r--storage/src/vespa/storage/distributor/distributor_stripe.cpp3
-rw-r--r--storage/src/vespa/storage/distributor/distributor_stripe.h1
-rw-r--r--storage/src/vespa/storage/distributor/idealstatemanager.cpp10
-rw-r--r--storage/src/vespa/storage/distributor/idealstatemanager.h3
-rw-r--r--storage/src/vespa/storage/storageserver/distributornode.cpp6
-rw-r--r--storage/src/vespa/storage/storageserver/distributornode.h9
9 files changed, 18 insertions, 32 deletions
diff --git a/storage/src/tests/distributor/distributortestutil.cpp b/storage/src/tests/distributor/distributortestutil.cpp
index 8a0e18c86af..43870dd2c3e 100644
--- a/storage/src/tests/distributor/distributortestutil.cpp
+++ b/storage/src/tests/distributor/distributortestutil.cpp
@@ -32,7 +32,7 @@ DistributorTestUtil::createLinks()
_node->node_identity(),
*_threadPool,
*this,
- true,
+ 0,
_hostInfo,
&_messageSender));
_component.reset(new storage::DistributorComponent(_node->getComponentRegister(), "distrtestutil"));
diff --git a/storage/src/vespa/storage/distributor/distributor.cpp b/storage/src/vespa/storage/distributor/distributor.cpp
index b29d8458b41..eefcf3551d6 100644
--- a/storage/src/vespa/storage/distributor/distributor.cpp
+++ b/storage/src/vespa/storage/distributor/distributor.cpp
@@ -45,7 +45,7 @@ Distributor::Distributor(DistributorComponentRegister& compReg,
const NodeIdentity& node_identity,
framework::TickingThreadPool& threadPool,
DoneInitializeHandler& doneInitHandler,
- bool manageActiveBucketCopies,
+ uint32_t num_distributor_stripes,
HostInfo& hostInfoReporterRegistrar,
ChainedMessageSender* messageSender)
: StorageLink("distributor"),
@@ -53,8 +53,7 @@ Distributor::Distributor(DistributorComponentRegister& compReg,
_comp_reg(compReg),
_metrics(std::make_shared<DistributorMetricSet>()),
_messageSender(messageSender),
- _stripe(std::make_unique<DistributorStripe>(compReg, *_metrics, node_identity, threadPool, doneInitHandler,
- manageActiveBucketCopies, *this)),
+ _stripe(std::make_unique<DistributorStripe>(compReg, *_metrics, node_identity, threadPool, doneInitHandler, *this)),
_stripe_accessor(std::make_unique<LegacySingleStripeAccessor>(*_stripe)),
_component(compReg, "distributor"),
_bucket_db_updater(),
@@ -68,6 +67,10 @@ Distributor::Distributor(DistributorComponentRegister& compReg,
{
_component.registerMetric(*_metrics);
_component.registerMetricUpdateHook(_metricUpdateHook, framework::SecondTime(0));
+ if (num_distributor_stripes > 0) {
+ // FIXME STRIPE using the singular stripe here is a temporary Hack McHack Deluxe 3000!
+ _bucket_db_updater = std::make_unique<BucketDBUpdater>(*_stripe, *_stripe, _comp_reg, *_stripe_accessor);
+ }
_distributorStatusDelegate.registerStatusPage();
hostInfoReporterRegistrar.registerReporter(&_hostInfoReporter);
propagateDefaultDistribution(_component.getDistribution());
@@ -384,11 +387,6 @@ Distributor::doNonCriticalTick(framework::ThreadIndex idx)
void
Distributor::enableNextConfig()
{
- // FIXME STRIPE enforce this cannot happen live, only valid for startup config edge
- if (getConfig().num_distributor_stripes() > 0 && !_bucket_db_updater) {
- // FIXME STRIPE using the singular stripe here is a temporary Hack McHack Deluxe 3000!
- _bucket_db_updater = std::make_unique<BucketDBUpdater>(*_stripe, *_stripe, _comp_reg, *_stripe_accessor);
- }
_hostInfoReporter.enableReporting(getConfig().getEnableHostInfoReporting());
_stripe->enableNextConfig(); // TODO STRIPE avoid redundant call
}
diff --git a/storage/src/vespa/storage/distributor/distributor.h b/storage/src/vespa/storage/distributor/distributor.h
index 9ad6425afe9..6b62e57f4a6 100644
--- a/storage/src/vespa/storage/distributor/distributor.h
+++ b/storage/src/vespa/storage/distributor/distributor.h
@@ -57,7 +57,7 @@ public:
const NodeIdentity& node_identity,
framework::TickingThreadPool&,
DoneInitializeHandler&,
- bool manageActiveBucketCopies,
+ uint32_t num_distributor_stripes,
HostInfo& hostInfoReporterRegistrar,
ChainedMessageSender* = nullptr);
diff --git a/storage/src/vespa/storage/distributor/distributor_stripe.cpp b/storage/src/vespa/storage/distributor/distributor_stripe.cpp
index 11fb69a30c1..b9d141b05a6 100644
--- a/storage/src/vespa/storage/distributor/distributor_stripe.cpp
+++ b/storage/src/vespa/storage/distributor/distributor_stripe.cpp
@@ -38,7 +38,6 @@ DistributorStripe::DistributorStripe(DistributorComponentRegister& compReg,
const NodeIdentity& node_identity,
framework::TickingThreadPool& threadPool,
DoneInitializeHandler& doneInitHandler,
- bool manageActiveBucketCopies,
ChainedMessageSender& messageSender)
: DistributorStripeInterface(),
framework::StatusReporter("distributor", "Distributor"),
@@ -54,7 +53,7 @@ DistributorStripe::DistributorStripe(DistributorComponentRegister& compReg,
_bucketDBUpdater(*this, *_bucketSpaceRepo, *_readOnlyBucketSpaceRepo, *this, compReg),
_distributorStatusDelegate(compReg, *this, *this),
_bucketDBStatusDelegate(compReg, *this, _bucketDBUpdater),
- _idealStateManager(*this, *_bucketSpaceRepo, *_readOnlyBucketSpaceRepo, compReg, manageActiveBucketCopies),
+ _idealStateManager(*this, *_bucketSpaceRepo, *_readOnlyBucketSpaceRepo, compReg),
_messageSender(messageSender),
_externalOperationHandler(_component, _component, getMetrics(), getMessageSender(),
*_operation_sequencer, *this, _component,
diff --git a/storage/src/vespa/storage/distributor/distributor_stripe.h b/storage/src/vespa/storage/distributor/distributor_stripe.h
index 9756547ec1d..77ce510ea54 100644
--- a/storage/src/vespa/storage/distributor/distributor_stripe.h
+++ b/storage/src/vespa/storage/distributor/distributor_stripe.h
@@ -59,7 +59,6 @@ public:
const NodeIdentity& node_identity,
framework::TickingThreadPool&,
DoneInitializeHandler&,
- bool manageActiveBucketCopies,
ChainedMessageSender& messageSender);
~DistributorStripe() override;
diff --git a/storage/src/vespa/storage/distributor/idealstatemanager.cpp b/storage/src/vespa/storage/distributor/idealstatemanager.cpp
index 84fef955feb..a090f00300b 100644
--- a/storage/src/vespa/storage/distributor/idealstatemanager.cpp
+++ b/storage/src/vespa/storage/distributor/idealstatemanager.cpp
@@ -28,8 +28,7 @@ IdealStateManager::IdealStateManager(
DistributorStripeInterface& owner,
DistributorBucketSpaceRepo& bucketSpaceRepo,
DistributorBucketSpaceRepo& readOnlyBucketSpaceRepo,
- DistributorComponentRegister& compReg,
- bool manageActiveBucketCopies)
+ DistributorComponentRegister& compReg)
: HtmlStatusReporter("idealstateman", "Ideal state manager"),
_metrics(new IdealStateMetricSet),
_distributorComponent(owner, bucketSpaceRepo, readOnlyBucketSpaceRepo, compReg, "Ideal state manager"),
@@ -39,11 +38,8 @@ IdealStateManager::IdealStateManager(
_distributorComponent.registerStatusPage(*this);
_distributorComponent.registerMetric(*_metrics);
- if (manageActiveBucketCopies) {
- LOG(debug, "Adding BucketStateStateChecker to state checkers");
- _stateCheckers.push_back(
- StateChecker::SP(new BucketStateStateChecker()));
- }
+ LOG(debug, "Adding BucketStateStateChecker to state checkers");
+ _stateCheckers.push_back(StateChecker::SP(new BucketStateStateChecker()));
_splitBucketStateChecker = new SplitBucketStateChecker();
_stateCheckers.push_back(StateChecker::SP(_splitBucketStateChecker));
diff --git a/storage/src/vespa/storage/distributor/idealstatemanager.h b/storage/src/vespa/storage/distributor/idealstatemanager.h
index 363d66d8174..a5f80343512 100644
--- a/storage/src/vespa/storage/distributor/idealstatemanager.h
+++ b/storage/src/vespa/storage/distributor/idealstatemanager.h
@@ -37,8 +37,7 @@ public:
IdealStateManager(DistributorStripeInterface& owner,
DistributorBucketSpaceRepo& bucketSpaceRepo,
DistributorBucketSpaceRepo& readOnlyBucketSpaceRepo,
- DistributorComponentRegister& compReg,
- bool manageActiveBucketCopies);
+ DistributorComponentRegister& compReg);
~IdealStateManager() override;
diff --git a/storage/src/vespa/storage/storageserver/distributornode.cpp b/storage/src/vespa/storage/storageserver/distributornode.cpp
index 367a325939e..8f4f0422f44 100644
--- a/storage/src/vespa/storage/storageserver/distributornode.cpp
+++ b/storage/src/vespa/storage/storageserver/distributornode.cpp
@@ -19,7 +19,7 @@ DistributorNode::DistributorNode(
const config::ConfigUri& configUri,
DistributorNodeContext& context,
ApplicationGenerationFetcher& generationFetcher,
- NeedActiveState activeState,
+ uint32_t num_distributor_stripes,
StorageLink::UP communicationManager,
std::unique_ptr<IStorageChainBuilder> storage_chain_builder)
: StorageNode(configUri, context, generationFetcher,
@@ -29,7 +29,7 @@ DistributorNode::DistributorNode(
_context(context),
_lastUniqueTimestampRequested(0),
_uniqueTimestampCounter(0),
- _manageActiveBucketCopies(activeState == NEED_ACTIVE_BUCKET_STATES_SET),
+ _num_distributor_stripes(num_distributor_stripes),
_retrievedCommunicationManager(std::move(communicationManager))
{
if (storage_chain_builder) {
@@ -101,7 +101,7 @@ DistributorNode::createChain(IStorageChainBuilder &builder)
// extends to the end of the process.
builder.add(std::make_unique<storage::distributor::Distributor>
(dcr, *_node_identity, *_threadPool, getDoneInitializeHandler(),
- _manageActiveBucketCopies,
+ _num_distributor_stripes,
stateManager->getHostInfo()));
builder.add(std::move(stateManager));
diff --git a/storage/src/vespa/storage/storageserver/distributornode.h b/storage/src/vespa/storage/storageserver/distributornode.h
index 17636efc7d3..267d4400ac7 100644
--- a/storage/src/vespa/storage/storageserver/distributornode.h
+++ b/storage/src/vespa/storage/storageserver/distributornode.h
@@ -25,21 +25,16 @@ class DistributorNode
DistributorNodeContext& _context;
uint64_t _lastUniqueTimestampRequested;
uint32_t _uniqueTimestampCounter;
- bool _manageActiveBucketCopies;
+ uint32_t _num_distributor_stripes;
std::unique_ptr<StorageLink> _retrievedCommunicationManager;
public:
typedef std::unique_ptr<DistributorNode> UP;
- enum NeedActiveState
- {
- NEED_ACTIVE_BUCKET_STATES_SET,
- NO_NEED_FOR_ACTIVE_STATES
- };
DistributorNode(const config::ConfigUri & configUri,
DistributorNodeContext&,
ApplicationGenerationFetcher& generationFetcher,
- NeedActiveState,
+ uint32_t num_distributor_stripes,
std::unique_ptr<StorageLink> communicationManager,
std::unique_ptr<IStorageChainBuilder> storage_chain_builder);
~DistributorNode() override;