diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-10-18 11:20:13 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-10-18 11:25:35 +0000 |
commit | 554e8e480b6a614c7b730390472b83daf11911b9 (patch) | |
tree | 9bfa6b5b1bca00424cb0c9d65e21541eacad7568 /storage | |
parent | f34acff8f2f40938d97b5b20ed960101d6622eff (diff) |
Reduce usage of Component
Diffstat (limited to 'storage')
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) {} |