aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2022-02-16 10:26:12 +0000
committerGeir Storli <geirst@yahooinc.com>2022-02-16 10:26:12 +0000
commit764afc2ec75333d0cbea6830facf233a97124597 (patch)
tree5a5efa19d65758d191dc2c558672042b3545bfc5
parenta6aa433a11465bdbd760c294f9b0c1bb89dedd6e (diff)
Tag persistence threads with cpu category WRITE and relevant operations as READ.
-rw-r--r--storage/src/vespa/storage/persistence/asynchandler.cpp11
-rw-r--r--storage/src/vespa/storage/persistence/persistencehandler.cpp11
-rw-r--r--storage/src/vespa/storage/persistence/persistencethread.cpp2
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()