aboutsummaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-10-18 11:20:13 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-10-18 11:25:35 +0000
commit554e8e480b6a614c7b730390472b83daf11911b9 (patch)
tree9bfa6b5b1bca00424cb0c9d65e21541eacad7568 /storage
parentf34acff8f2f40938d97b5b20ed960101d6622eff (diff)
Reduce usage of Component
Diffstat (limited to 'storage')
-rw-r--r--storage/src/vespa/storage/common/storagecomponent.h5
-rw-r--r--storage/src/vespa/storage/frameworkimpl/component/servicelayercomponentregisterimpl.cpp3
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/mergestatus.cpp2
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/mergestatus.h2
-rw-r--r--storage/src/vespa/storage/persistence/mergehandler.cpp44
-rw-r--r--storage/src/vespa/storage/persistence/mergehandler.h2
-rw-r--r--storage/src/vespa/storage/persistence/persistenceutil.cpp2
-rw-r--r--storage/src/vespa/storage/visiting/commandqueue.h4
8 files changed, 34 insertions, 30 deletions
diff --git a/storage/src/vespa/storage/common/storagecomponent.h b/storage/src/vespa/storage/common/storagecomponent.h
index e0b1dc74d7f..f5796ebb49b 100644
--- a/storage/src/vespa/storage/common/storagecomponent.h
+++ b/storage/src/vespa/storage/common/storagecomponent.h
@@ -91,7 +91,7 @@ public:
StorageComponent(StorageComponentRegister&, vespalib::stringref name);
~StorageComponent() override;
- vespalib::string getClusterName() const { return _clusterName; }
+ const vespalib::string & getClusterName() const { return _clusterName; }
const lib::NodeType& getNodeType() const { return *_nodeType; }
uint16_t getIndex() const { return _index; }
lib::Node getNode() const { return lib::Node(*_nodeType, _index); }
@@ -100,8 +100,7 @@ public:
std::shared_ptr<Repos> getTypeRepo() const;
LoadTypeSetSP getLoadTypes() const;
- const document::BucketIdFactory& getBucketIdFactory() const
- { return _bucketIdFactory; }
+ const document::BucketIdFactory& getBucketIdFactory() const { return _bucketIdFactory; }
uint8_t getPriority(const documentapi::LoadType&) const;
DistributionSP getDistribution() const;
NodeStateUpdater& getStateUpdater() const;
diff --git a/storage/src/vespa/storage/frameworkimpl/component/servicelayercomponentregisterimpl.cpp b/storage/src/vespa/storage/frameworkimpl/component/servicelayercomponentregisterimpl.cpp
index 17e65478411..66ec262250c 100644
--- a/storage/src/vespa/storage/frameworkimpl/component/servicelayercomponentregisterimpl.cpp
+++ b/storage/src/vespa/storage/frameworkimpl/component/servicelayercomponentregisterimpl.cpp
@@ -15,8 +15,7 @@ ServiceLayerComponentRegisterImpl::ServiceLayerComponentRegisterImpl(bool use_bt
{ }
void
-ServiceLayerComponentRegisterImpl::registerServiceLayerComponent(
- ServiceLayerManagedComponent& smc)
+ServiceLayerComponentRegisterImpl::registerServiceLayerComponent(ServiceLayerManagedComponent& smc)
{
std::lock_guard lock(_componentLock);
_components.push_back(&smc);
diff --git a/storage/src/vespa/storage/persistence/filestorage/mergestatus.cpp b/storage/src/vespa/storage/persistence/filestorage/mergestatus.cpp
index 1efb42a7b22..6934f4754bb 100644
--- a/storage/src/vespa/storage/persistence/filestorage/mergestatus.cpp
+++ b/storage/src/vespa/storage/persistence/filestorage/mergestatus.cpp
@@ -8,7 +8,7 @@ LOG_SETUP(".mergestatus");
namespace storage {
-MergeStatus::MergeStatus(framework::Clock& clock, const metrics::LoadType& lt,
+MergeStatus::MergeStatus(const framework::Clock& clock, const metrics::LoadType& lt,
api::StorageMessage::Priority priority,
uint32_t traceLevel)
: reply(), nodeList(), maxTimestamp(0), diff(), pendingId(0),
diff --git a/storage/src/vespa/storage/persistence/filestorage/mergestatus.h b/storage/src/vespa/storage/persistence/filestorage/mergestatus.h
index 082ae053ec0..93a4b96c1a0 100644
--- a/storage/src/vespa/storage/persistence/filestorage/mergestatus.h
+++ b/storage/src/vespa/storage/persistence/filestorage/mergestatus.h
@@ -28,7 +28,7 @@ public:
framework::MilliSecTimer startTime;
spi::Context context;
- MergeStatus(framework::Clock&, const metrics::LoadType&, api::StorageMessage::Priority, uint32_t traceLevel);
+ MergeStatus(const framework::Clock&, const metrics::LoadType&, api::StorageMessage::Priority, uint32_t traceLevel);
~MergeStatus();
/**
diff --git a/storage/src/vespa/storage/persistence/mergehandler.cpp b/storage/src/vespa/storage/persistence/mergehandler.cpp
index ce033bf6e19..2287c3f6ff6 100644
--- a/storage/src/vespa/storage/persistence/mergehandler.cpp
+++ b/storage/src/vespa/storage/persistence/mergehandler.cpp
@@ -15,14 +15,18 @@ LOG_SETUP(".persistence.mergehandler");
namespace storage {
MergeHandler::MergeHandler(PersistenceUtil& env, spi::PersistenceProvider& spi)
- : _env(env),
+ : _clock(env._component.getClock()),
+ _clusterName(env._component.getClusterName()),
+ _env(env),
_spi(spi),
_maxChunkSize(env._config.bucketMergeChunkSize)
{
}
MergeHandler::MergeHandler(PersistenceUtil& env, spi::PersistenceProvider& spi, uint32_t maxChunkSize)
- : _env(env),
+ : _clock(env._component.getClock()),
+ _clusterName(env._component.getClusterName()),
+ _env(env),
_spi(spi),
_maxChunkSize(maxChunkSize)
{
@@ -504,12 +508,12 @@ MergeHandler::applyDiffEntry(const spi::Bucket& bucket,
// Regular put entry
Document::SP doc(deserializeDiffDocument(e, repo));
DocumentId docId = doc->getId();
- framework::MilliSecTimer start_time(_env._component.getClock());
+ framework::MilliSecTimer start_time(_clock);
checkResult(_spi.put(bucket, timestamp, std::move(doc), context), bucket, docId, "put");
_env._metrics.merge_handler_metrics.put_latency.addValue(start_time.getElapsedTimeAsDouble());
} else {
DocumentId docId(e._docName);
- framework::MilliSecTimer start_time(_env._component.getClock());
+ framework::MilliSecTimer start_time(_clock);
checkResult(_spi.remove(bucket, timestamp, docId, context), bucket, docId, "remove");
_env._metrics.merge_handler_metrics.remove_latency.addValue(start_time.getElapsedTimeAsDouble());
}
@@ -724,7 +728,7 @@ MergeHandler::processBucketMerge(const spi::Bucket& bucket, MergeStatus& status,
: _maxChunkSize);
cmd = std::make_shared<api::ApplyBucketDiffCommand>(bucket.getBucket(), nodes, maxSize);
- cmd->setAddress(createAddress(_env._component.getClusterName(), nodes[1].index));
+ cmd->setAddress(createAddress(_clusterName, nodes[1].index));
findCandidates(bucket.getBucketId(),
status,
true,
@@ -792,7 +796,7 @@ MergeHandler::processBucketMerge(const spi::Bucket& bucket, MergeStatus& status,
? std::numeric_limits<uint32_t>::max()
: _maxChunkSize);
cmd = std::make_shared<api::ApplyBucketDiffCommand>(bucket.getBucket(), nodes, maxSize);
- cmd->setAddress(createAddress(_env._component.getClusterName(), nodes[1].index));
+ cmd->setAddress(createAddress(_clusterName, nodes[1].index));
// Add all the metadata, and thus use big limit. Max
// data to fetch parameter will control amount added.
findCandidates(bucket.getBucketId(), status, true, e.first, newMask, maxSize, *cmd);
@@ -805,13 +809,13 @@ MergeHandler::processBucketMerge(const spi::Bucket& bucket, MergeStatus& status,
// merge to merge the remaining data.
if ( ! cmd ) {
cmd = std::make_shared<api::ApplyBucketDiffCommand>(bucket.getBucket(), status.nodeList, _maxChunkSize);
- cmd->setAddress(createAddress(_env._component.getClusterName(), status.nodeList[1].index));
+ cmd->setAddress(createAddress(_clusterName, status.nodeList[1].index));
findCandidates(bucket.getBucketId(), status, false, 0, 0, _maxChunkSize, *cmd);
}
cmd->setPriority(status.context.getPriority());
cmd->setTimeout(status.timeout);
if (applyDiffNeedLocalData(cmd->getDiff(), 0, true)) {
- framework::MilliSecTimer startTime(_env._component.getClock());
+ framework::MilliSecTimer startTime(_clock);
fetchLocalData(bucket, cmd->getLoadType(), cmd->getDiff(), 0, context);
_env._metrics.merge_handler_metrics.mergeDataReadLatency.addValue(startTime.getElapsedTimeAsDouble());
}
@@ -891,13 +895,13 @@ MergeHandler::handleMergeBucket(api::MergeBucketCommand& cmd, MessageTracker::UP
MergeStateDeleter stateGuard(_env._fileStorHandler, bucket.getBucket());
auto s = std::make_shared<MergeStatus>(
- _env._component.getClock(), cmd.getLoadType(),
+ _clock, cmd.getLoadType(),
cmd.getPriority(), cmd.getTrace().getLevel());
_env._fileStorHandler.addMergeStatus(bucket.getBucket(), s);
s->nodeList = cmd.getNodes();
s->maxTimestamp = Timestamp(cmd.getMaxTimestamp());
s->timeout = cmd.getTimeout();
- s->startTime = framework::MilliSecTimer(_env._component.getClock());
+ s->startTime = framework::MilliSecTimer(_clock);
auto cmd2 = std::make_shared<api::GetBucketDiffCommand>(bucket.getBucket(), s->nodeList, s->maxTimestamp.getTime());
if (!buildBucketInfoList(bucket, cmd.getLoadType(), s->maxTimestamp, 0, cmd2->getDiff(), tracker->context())) {
@@ -912,7 +916,7 @@ MergeHandler::handleMergeBucket(api::MergeBucketCommand& cmd, MessageTracker::UP
bucket.toString().c_str(),
s->nodeList[1].index,
uint32_t(cmd2->getDiff().size()));
- cmd2->setAddress(createAddress(_env._component.getClusterName(), s->nodeList[1].index));
+ cmd2->setAddress(createAddress(_clusterName, s->nodeList[1].index));
cmd2->setPriority(s->context.getPriority());
cmd2->setTimeout(s->timeout);
cmd2->setSourceIndex(cmd.getSourceIndex());
@@ -1071,7 +1075,7 @@ MergeHandler::handleGetBucketDiff(api::GetBucketDiffCommand& cmd, MessageTracker
// Merge info for retrieved and local info.
std::vector<api::GetBucketDiffCommand::Entry>& remote(cmd.getDiff());
std::vector<api::GetBucketDiffCommand::Entry> local;
- framework::MilliSecTimer startTime(_env._component.getClock());
+ framework::MilliSecTimer startTime(_clock);
if (!buildBucketInfoList(bucket, cmd.getLoadType(),
Timestamp(cmd.getMaxTimestamp()),
index, local, tracker->context()))
@@ -1113,7 +1117,7 @@ MergeHandler::handleGetBucketDiff(api::GetBucketDiffCommand& cmd, MessageTracker
// When not the last node in merge chain, we must save reply, and
// send command on.
MergeStateDeleter stateGuard(_env._fileStorHandler, bucket.getBucket());
- auto s = std::make_shared<MergeStatus>(_env._component.getClock(),
+ auto s = std::make_shared<MergeStatus>(_clock,
cmd.getLoadType(), cmd.getPriority(),
cmd.getTrace().getLevel());
_env._fileStorHandler.addMergeStatus(bucket.getBucket(), s);
@@ -1125,7 +1129,7 @@ MergeHandler::handleGetBucketDiff(api::GetBucketDiffCommand& cmd, MessageTracker
bucket.toString().c_str(), cmd.getNodes()[index + 1].index,
local.size() - remote.size());
auto cmd2 = std::make_shared<api::GetBucketDiffCommand>(bucket.getBucket(), cmd.getNodes(), cmd.getMaxTimestamp());
- cmd2->setAddress(createAddress(_env._component.getClusterName(), cmd.getNodes()[index + 1].index));
+ cmd2->setAddress(createAddress(_clusterName, cmd.getNodes()[index + 1].index));
cmd2->getDiff().swap(local);
cmd2->setPriority(cmd.getPriority());
cmd2->setTimeout(cmd.getTimeout());
@@ -1256,7 +1260,7 @@ MergeHandler::handleApplyBucketDiff(api::ApplyBucketDiffCommand& cmd, MessageTra
uint8_t index = findOwnIndex(cmd.getNodes(), _env._nodeIndex);
bool lastInChain = index + 1u >= cmd.getNodes().size();
if (applyDiffNeedLocalData(cmd.getDiff(), index, !lastInChain)) {
- framework::MilliSecTimer startTime(_env._component.getClock());
+ framework::MilliSecTimer startTime(_clock);
fetchLocalData(bucket, cmd.getLoadType(), cmd.getDiff(), index, tracker->context());
_env._metrics.merge_handler_metrics.mergeDataReadLatency.addValue(startTime.getElapsedTimeAsDouble());
} else {
@@ -1268,7 +1272,7 @@ MergeHandler::handleApplyBucketDiff(api::ApplyBucketDiffCommand& cmd, MessageTra
index);
}
if (applyDiffHasLocallyNeededData(cmd.getDiff(), index)) {
- framework::MilliSecTimer startTime(_env._component.getClock());
+ framework::MilliSecTimer startTime(_clock);
(void) applyDiffLocally(bucket, cmd.getLoadType(),
cmd.getDiff(), index, tracker->context());
_env._metrics.merge_handler_metrics.mergeDataWriteLatency.addValue(
@@ -1304,7 +1308,7 @@ MergeHandler::handleApplyBucketDiff(api::ApplyBucketDiffCommand& cmd, MessageTra
// When not the last node in merge chain, we must save reply, and
// send command on.
MergeStateDeleter stateGuard(_env._fileStorHandler, bucket.getBucket());
- auto s = std::make_shared<MergeStatus>(_env._component.getClock(),
+ auto s = std::make_shared<MergeStatus>(_clock,
cmd.getLoadType(), cmd.getPriority(),
cmd.getTrace().getLevel());
_env._fileStorHandler.addMergeStatus(bucket.getBucket(), s);
@@ -1313,7 +1317,7 @@ MergeHandler::handleApplyBucketDiff(api::ApplyBucketDiffCommand& cmd, MessageTra
LOG(spam, "Sending ApplyBucketDiff for %s on to node %d",
bucket.toString().c_str(), cmd.getNodes()[index + 1].index);
auto cmd2 = std::make_shared<api::ApplyBucketDiffCommand>(bucket.getBucket(), cmd.getNodes(), cmd.getMaxBufferSize());
- cmd2->setAddress(createAddress(_env._component.getClusterName(), cmd.getNodes()[index + 1].index));
+ cmd2->setAddress(createAddress(_clusterName, cmd.getNodes()[index + 1].index));
cmd2->getDiff().swap(cmd.getDiff());
cmd2->setPriority(cmd.getPriority());
cmd2->setTimeout(cmd.getTimeout());
@@ -1359,12 +1363,12 @@ MergeHandler::handleApplyBucketDiffReply(api::ApplyBucketDiffReply& reply,Messag
assert(reply.getNodes().size() >= 2);
uint8_t index = findOwnIndex(reply.getNodes(), _env._nodeIndex);
if (applyDiffNeedLocalData(diff, index, false)) {
- framework::MilliSecTimer startTime(_env._component.getClock());
+ framework::MilliSecTimer startTime(_clock);
fetchLocalData(bucket, reply.getLoadType(), diff, index, s.context);
_env._metrics.merge_handler_metrics.mergeDataReadLatency.addValue(startTime.getElapsedTimeAsDouble());
}
if (applyDiffHasLocallyNeededData(diff, index)) {
- framework::MilliSecTimer startTime(_env._component.getClock());
+ framework::MilliSecTimer startTime(_clock);
(void) applyDiffLocally(bucket, reply.getLoadType(), diff, index, s.context);
_env._metrics.merge_handler_metrics.mergeDataWriteLatency.addValue(startTime.getElapsedTimeAsDouble());
} else {
diff --git a/storage/src/vespa/storage/persistence/mergehandler.h b/storage/src/vespa/storage/persistence/mergehandler.h
index 9e200f62307..0fca56f639d 100644
--- a/storage/src/vespa/storage/persistence/mergehandler.h
+++ b/storage/src/vespa/storage/persistence/mergehandler.h
@@ -64,6 +64,8 @@ public:
void handleApplyBucketDiffReply(api::ApplyBucketDiffReply&, MessageSender&);
private:
+ const framework::Clock &_clock;
+ const vespalib::string &_clusterName;
PersistenceUtil &_env;
spi::PersistenceProvider &_spi;
uint32_t _maxChunkSize;
diff --git a/storage/src/vespa/storage/persistence/persistenceutil.cpp b/storage/src/vespa/storage/persistence/persistenceutil.cpp
index 291db620723..6ddda93011a 100644
--- a/storage/src/vespa/storage/persistence/persistenceutil.cpp
+++ b/storage/src/vespa/storage/persistence/persistenceutil.cpp
@@ -47,7 +47,7 @@ MessageTracker::MessageTracker(PersistenceUtil & env,
_replySender(replySender),
_metric(nullptr),
_result(api::ReturnCode::OK),
- _timer(_env._component.getClock())
+ _timer(env._component.getClock())
{ }
MessageTracker::UP
diff --git a/storage/src/vespa/storage/visiting/commandqueue.h b/storage/src/vespa/storage/visiting/commandqueue.h
index 6d9bfc1ca4f..1ff46b9cafd 100644
--- a/storage/src/vespa/storage/visiting/commandqueue.h
+++ b/storage/src/vespa/storage/visiting/commandqueue.h
@@ -65,7 +65,7 @@ private:
typedef typename boost::multi_index
::nth_index<CommandList, 1>::type timelist;
- framework::Clock& _clock;
+ const framework::Clock& _clock;
mutable CommandList _commands;
uint64_t _sequenceId;
@@ -76,7 +76,7 @@ public:
typedef typename CommandList::const_reverse_iterator const_reverse_iterator;
typedef typename timelist::const_iterator const_titerator;
- CommandQueue(framework::Clock& clock)
+ CommandQueue(const framework::Clock& clock)
: _clock(clock),
_sequenceId(0) {}