diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-02-16 10:26:12 +0000 |
---|---|---|
committer | Geir Storli <geirst@yahooinc.com> | 2022-02-16 10:26:12 +0000 |
commit | 764afc2ec75333d0cbea6830facf233a97124597 (patch) | |
tree | 5a5efa19d65758d191dc2c558672042b3545bfc5 /storage | |
parent | a6aa433a11465bdbd760c294f9b0c1bb89dedd6e (diff) |
Tag persistence threads with cpu category WRITE and relevant operations as READ.
Diffstat (limited to 'storage')
3 files changed, 20 insertions, 4 deletions
diff --git a/storage/src/vespa/storage/persistence/asynchandler.cpp b/storage/src/vespa/storage/persistence/asynchandler.cpp index 5dafd9c5eda..d80eb140eec 100644 --- a/storage/src/vespa/storage/persistence/asynchandler.cpp +++ b/storage/src/vespa/storage/persistence/asynchandler.cpp @@ -19,6 +19,7 @@ #include <vespa/log/log.h> LOG_SETUP(".storage.persistence.asynchandler"); +using vespalib::CpuUsage; using vespalib::make_string_short::fmt; namespace storage { @@ -410,9 +411,13 @@ AsyncHandler::handleRemoveLocation(api::RemoveLocationCommand& cmd, MessageTrack spi::Bucket bucket(cmd.getBucket()); UnrevertableRemoveEntryProcessor::DocumentIdsAndTimeStamps to_remove; UnrevertableRemoveEntryProcessor processor(to_remove); - BucketProcessor::iterateAll(_spi, bucket, cmd.getDocumentSelection(), - std::make_shared<document::DocIdOnly>(), - processor, spi::NEWEST_DOCUMENT_ONLY,tracker->context()); + + { + auto usage = vespalib::CpuUsage::use(CpuUsage::Category::READ); + BucketProcessor::iterateAll(_spi, bucket, cmd.getDocumentSelection(), + std::make_shared<document::DocIdOnly>(), + processor, spi::NEWEST_DOCUMENT_ONLY, tracker->context()); + } auto task = makeResultTask([&cmd, tracker = std::move(tracker), removed = to_remove.size()](spi::Result::UP response) { tracker->checkForError(*response); diff --git a/storage/src/vespa/storage/persistence/persistencehandler.cpp b/storage/src/vespa/storage/persistence/persistencehandler.cpp index 569da873cea..41df1e8a075 100644 --- a/storage/src/vespa/storage/persistence/persistencehandler.cpp +++ b/storage/src/vespa/storage/persistence/persistencehandler.cpp @@ -5,6 +5,8 @@ #include <vespa/log/log.h> LOG_SETUP(".persistence.persistencehandler"); +using vespalib::CpuUsage; + namespace storage { PersistenceHandler::PersistenceHandler(vespalib::ISequencedTaskExecutor & sequencedExecutor, @@ -53,7 +55,10 @@ PersistenceHandler::handleCommandSplitByType(api::StorageCommand& msg, MessageTr OperationSyncPhaseTrackingGuard sync_guard(*tracker); switch (msg.getType().getId()) { case api::MessageType::GET_ID: + { + auto usage = vespalib::CpuUsage::use(CpuUsage::Category::READ); return _simpleHandler.handleGet(static_cast<api::GetCommand&>(msg), std::move(tracker)); + } case api::MessageType::PUT_ID: return _asyncHandler.handlePut(static_cast<api::PutCommand&>(msg), std::move(tracker)); case api::MessageType::REMOVE_ID: @@ -86,9 +91,15 @@ PersistenceHandler::handleCommandSplitByType(api::StorageCommand& msg, MessageTr case api::MessageType::INTERNAL_ID: switch(static_cast<api::InternalCommand&>(msg).getType()) { case GetIterCommand::ID: + { + auto usage = vespalib::CpuUsage::use(CpuUsage::Category::READ); return _simpleHandler.handleGetIter(static_cast<GetIterCommand&>(msg), std::move(tracker)); + } case CreateIteratorCommand::ID: + { + auto usage = vespalib::CpuUsage::use(CpuUsage::Category::READ); return _simpleHandler.handleCreateIterator(static_cast<CreateIteratorCommand&>(msg), std::move(tracker)); + } case ReadBucketList::ID: return _simpleHandler.handleReadBucketList(static_cast<ReadBucketList&>(msg), std::move(tracker)); case ReadBucketInfo::ID: diff --git a/storage/src/vespa/storage/persistence/persistencethread.cpp b/storage/src/vespa/storage/persistence/persistencethread.cpp index 499e9807cbf..b89c60d4720 100644 --- a/storage/src/vespa/storage/persistence/persistencethread.cpp +++ b/storage/src/vespa/storage/persistence/persistencethread.cpp @@ -16,7 +16,7 @@ PersistenceThread::PersistenceThread(PersistenceHandler & persistenceHandler, Fi _stripeId(stripeId), _thread() { - _thread = component.startThread(*this, 60s, 1s); + _thread = component.startThread(*this, 60s, 1s, 1, vespalib::CpuUsage::Category::WRITE); } PersistenceThread::~PersistenceThread() |