diff options
-rw-r--r-- | configdefinitions/src/vespa/stor-filestor.def | 2 | ||||
-rw-r--r-- | storage/src/vespa/storage/persistence/persistencethread.cpp | 19 |
2 files changed, 11 insertions, 10 deletions
diff --git a/configdefinitions/src/vespa/stor-filestor.def b/configdefinitions/src/vespa/stor-filestor.def index 56f82d9e9cf..80ddc0931f4 100644 --- a/configdefinitions/src/vespa/stor-filestor.def +++ b/configdefinitions/src/vespa/stor-filestor.def @@ -26,7 +26,7 @@ disk_operation_timeout int default=0 restart ## Number of threads to use for each mountpoint. num_threads int default=8 restart -## Number of thread for response processing and delivery +## Number of threads for response processing and delivery ## 0 will give legacy sync behavior. ## Negative number will choose a good number based on # cores. num_response_threads int default=0 diff --git a/storage/src/vespa/storage/persistence/persistencethread.cpp b/storage/src/vespa/storage/persistence/persistencethread.cpp index c9afdf42651..4a99655c775 100644 --- a/storage/src/vespa/storage/persistence/persistencethread.cpp +++ b/storage/src/vespa/storage/persistence/persistencethread.cpp @@ -166,31 +166,32 @@ PersistenceThread::tasConditionMatches(const api::TestAndSetCommand & cmd, Messa } MessageTracker::UP -PersistenceThread::handlePut(api::PutCommand& cmd, MessageTracker::UP tracker) +PersistenceThread::handlePut(api::PutCommand& cmd, MessageTracker::UP trackerUP) { + MessageTracker & tracker = *trackerUP; auto& metrics = _env._metrics.put[cmd.getLoadType()]; - tracker->setMetric(metrics); + tracker.setMetric(metrics); metrics.request_size.addValue(cmd.getApproxByteSize()); - if (tasConditionExists(cmd) && !tasConditionMatches(cmd, *tracker, tracker->context())) { - return tracker; + if (tasConditionExists(cmd) && !tasConditionMatches(cmd, tracker, tracker.context())) { + return trackerUP; } if (_sequencedExecutor == nullptr) { spi::Result response = _spi.put(getBucket(cmd.getDocumentId(), cmd.getBucket()), spi::Timestamp(cmd.getTimestamp()), std::move(cmd.getDocument()), - tracker->context()); - tracker->checkForError(response); + tracker.context()); + tracker.checkForError(response); } else { _spi.putAsync(getBucket(cmd.getDocumentId(), cmd.getBucket()), spi::Timestamp(cmd.getTimestamp()), - std::move(cmd.getDocument()), tracker->context(), + std::move(cmd.getDocument()), tracker.context(), std::make_unique<ResultTaskOperationDone>(*_sequencedExecutor, cmd.getBucketId(), - makeResultTask([tracker = std::move(tracker)](spi::Result::UP response) { + makeResultTask([tracker = std::move(trackerUP)](spi::Result::UP response) { tracker->checkForError(*response); tracker->sendReply(); }))); } - return tracker; + return trackerUP; } MessageTracker::UP |