summaryrefslogtreecommitdiffstats
path: root/storage/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-11-18 10:46:55 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-11-18 18:22:16 +0000
commit37822a5c2ecf566bac41ea8a8c94226115ac370f (patch)
tree2266cd8bdbc8675892c74dafeab2c7317142dd77 /storage/src
parentb2d2d0053d16ca15c9298f3e8312b494e246c5e9 (diff)
Hide the modifiable TraceNode root inside the Trace object
Diffstat (limited to 'storage/src')
-rw-r--r--storage/src/tests/visiting/memory_bounded_trace_test.cpp12
-rw-r--r--storage/src/vespa/storage/distributor/operations/external/getoperation.cpp2
-rw-r--r--storage/src/vespa/storage/distributor/operations/external/twophaseupdateoperation.cpp2
-rw-r--r--storage/src/vespa/storage/distributor/operations/external/visitoroperation.cpp4
-rw-r--r--storage/src/vespa/storage/distributor/persistencemessagetracker.cpp2
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp2
-rw-r--r--storage/src/vespa/storage/persistence/persistenceutil.cpp4
-rw-r--r--storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.cpp2
-rw-r--r--storage/src/vespa/storage/visiting/memory_bounded_trace.cpp2
-rw-r--r--storage/src/vespa/storage/visiting/memory_bounded_trace.h2
-rw-r--r--storage/src/vespa/storage/visiting/visitor.cpp5
11 files changed, 19 insertions, 20 deletions
diff --git a/storage/src/tests/visiting/memory_bounded_trace_test.cpp b/storage/src/tests/visiting/memory_bounded_trace_test.cpp
index 543531ef55a..d0ea1172e11 100644
--- a/storage/src/tests/visiting/memory_bounded_trace_test.cpp
+++ b/storage/src/tests/visiting/memory_bounded_trace_test.cpp
@@ -32,12 +32,12 @@ TEST(MemoryBoundedTraceTest, memory_used_is_accumulated_recursively_for_non_leaf
TEST(MemoryBoundedTraceTest, trace_nodes_can_be_moved_and_implicitly_cleared) {
MemoryBoundedTrace trace(100);
EXPECT_TRUE(trace.add(mbus::TraceNode("hello world", epoch)));
- mbus::TraceNode target;
+ mbus::Trace target;
trace.moveTraceTo(target);
EXPECT_EQ(1, target.getNumChildren());
EXPECT_EQ(0, trace.getApproxMemoryUsed());
- mbus::TraceNode emptinessCheck;
+ mbus::Trace emptinessCheck;
trace.moveTraceTo(emptinessCheck);
EXPECT_EQ(0, emptinessCheck.getNumChildren());
}
@@ -52,10 +52,10 @@ TEST(MemoryBoundedTraceTest, trace_nodes_can_be_moved_and_implicitly_cleared) {
TEST(MemoryBoundedTraceTest, moved_trace_tree_is_marked_as_strict) {
MemoryBoundedTrace trace(100);
EXPECT_TRUE(trace.add(mbus::TraceNode("hello world", epoch)));
- mbus::TraceNode target;
+ mbus::Trace target;
trace.moveTraceTo(target);
EXPECT_EQ(1, target.getNumChildren());
- EXPECT_TRUE(target.getChild(0).isStrict());
+ EXPECT_TRUE(target.getRoot().getChild(0).isStrict());
}
TEST(MemoryBoundedTraceTest, can_not_add_more_nodes_when_memory_used_exceeds_upper_bound) {
@@ -69,7 +69,7 @@ TEST(MemoryBoundedTraceTest, can_not_add_more_nodes_when_memory_used_exceeds_upp
"the freeway", epoch)));
EXPECT_EQ(11, trace.getApproxMemoryUsed());
- mbus::TraceNode target;
+ mbus::Trace target;
trace.moveTraceTo(target);
// Twice nested node (root -> added trace tree -> leaf with txt).
EXPECT_EQ(1, target.getNumChildren());
@@ -82,7 +82,7 @@ TEST(MemoryBoundedTraceTest, moved_tree_includes_stats_node_when_nodes_omitted)
EXPECT_TRUE(trace.add(mbus::TraceNode("abcdef", epoch)));
EXPECT_FALSE(trace.add(mbus::TraceNode("ghijkjlmn", epoch)));
- mbus::TraceNode target;
+ mbus::Trace target;
trace.moveTraceTo(target);
EXPECT_EQ(1, target.getNumChildren());
EXPECT_EQ(2, target.getChild(0).getNumChildren());
diff --git a/storage/src/vespa/storage/distributor/operations/external/getoperation.cpp b/storage/src/vespa/storage/distributor/operations/external/getoperation.cpp
index cf7a0e4741e..9eff0b59e6e 100644
--- a/storage/src/vespa/storage/distributor/operations/external/getoperation.cpp
+++ b/storage/src/vespa/storage/distributor/operations/external/getoperation.cpp
@@ -145,7 +145,7 @@ GetOperation::onReceive(DistributorMessageSender& sender, const std::shared_ptr<
LOG(debug, "Received %s", msg->toString(true).c_str());
if ( ! getreply->getTrace().isEmpty()) {
- _msg->getTrace().getRoot().addChild(getreply->getTrace().getRoot());
+ _msg->getTrace().addChild(getreply->getTrace().getRoot());
}
bool allDone = true;
for (auto& response : _responses) {
diff --git a/storage/src/vespa/storage/distributor/operations/external/twophaseupdateoperation.cpp b/storage/src/vespa/storage/distributor/operations/external/twophaseupdateoperation.cpp
index 0b7d035ec0d..d406855e856 100644
--- a/storage/src/vespa/storage/distributor/operations/external/twophaseupdateoperation.cpp
+++ b/storage/src/vespa/storage/distributor/operations/external/twophaseupdateoperation.cpp
@@ -133,7 +133,7 @@ TwoPhaseUpdateOperation::sendReply(
{
assert(!_replySent);
if (!_trace.isEmpty()) {
- reply->getTrace().getRoot().addChild(_trace);
+ reply->getTrace().addChild(_trace);
}
sender.sendReply(reply);
_replySent = true;
diff --git a/storage/src/vespa/storage/distributor/operations/external/visitoroperation.cpp b/storage/src/vespa/storage/distributor/operations/external/visitoroperation.cpp
index 5a03e05d563..bbed631951c 100644
--- a/storage/src/vespa/storage/distributor/operations/external/visitoroperation.cpp
+++ b/storage/src/vespa/storage/distributor/operations/external/visitoroperation.cpp
@@ -828,8 +828,8 @@ VisitorOperation::sendReply(const api::ReturnCode& code, DistributorMessageSende
{
if (!_sentReply) {
// Send create visitor reply
- api::CreateVisitorReply::SP reply(new api::CreateVisitorReply(*_msg));
- _trace.moveTraceTo(reply->getTrace().getRoot());
+ auto reply = std::make_shared<api::CreateVisitorReply>(*_msg);
+ _trace.moveTraceTo(reply->getTrace());
reply->setLastBucket(getLastBucketVisited());
reply->setResult(code);
diff --git a/storage/src/vespa/storage/distributor/persistencemessagetracker.cpp b/storage/src/vespa/storage/distributor/persistencemessagetracker.cpp
index 6253beda6e1..8f824e6a364 100644
--- a/storage/src/vespa/storage/distributor/persistencemessagetracker.cpp
+++ b/storage/src/vespa/storage/distributor/persistencemessagetracker.cpp
@@ -230,7 +230,7 @@ PersistenceMessageTrackerImpl::sendReply(MessageSender& sender)
updateMetrics();
_trace.setStrict(false);
if ( ! _trace.isEmpty()) {
- _reply->getTrace().getRoot().addChild(_trace);
+ _reply->getTrace().addChild(_trace);
}
sender.sendReply(_reply);
diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
index cba3969cd68..6b6de2c8d83 100644
--- a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
+++ b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
@@ -676,7 +676,7 @@ FileStorManager::onInternal(const shared_ptr<api::InternalCommand>& msg)
spi::Context context(msg->getLoadType(), msg->getPriority(), msg->getTrace().getLevel());
shared_ptr<DestroyIteratorCommand> cmd(std::static_pointer_cast<DestroyIteratorCommand>(msg));
_provider->destroyIterator(cmd->getIteratorId(), context);
- msg->getTrace().getRoot().addChild(context.getTrace().getRoot());
+ msg->getTrace().addChild(context.getTrace().getRoot());
return true;
}
case ReadBucketList::ID:
diff --git a/storage/src/vespa/storage/persistence/persistenceutil.cpp b/storage/src/vespa/storage/persistence/persistenceutil.cpp
index 37ef4c39597..af070281c4f 100644
--- a/storage/src/vespa/storage/persistence/persistenceutil.cpp
+++ b/storage/src/vespa/storage/persistence/persistenceutil.cpp
@@ -94,7 +94,7 @@ MessageTracker::sendReply() {
}
if (hasReply()) {
if ( ! _context.getTrace().isEmpty()) {
- getReply().getTrace().getRoot().addChild(_context.getTrace().getRoot());
+ getReply().getTrace().addChild(_context.getTrace().getRoot());
}
if (_updateBucketInfo) {
if (getReply().getResult().success()) {
@@ -109,7 +109,7 @@ MessageTracker::sendReply() {
_replySender.sendReplyDirectly(std::move(_reply));
} else {
if ( ! _context.getTrace().isEmpty()) {
- _msg->getTrace().getRoot().addChild(_context.getTrace().getRoot());
+ _msg->getTrace().addChild(_context.getTrace().getRoot());
}
}
}
diff --git a/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.cpp b/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.cpp
index cb1d0380bf1..eaba3d54c27 100644
--- a/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.cpp
+++ b/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.cpp
@@ -289,7 +289,7 @@ void StorageApiRpcService::RequestDone(FRT_RPCRequest* raw_req) {
assert(reply);
if (!hdr.trace_payload().empty()) {
- cmd.getTrace().getRoot().addChild(mbus::TraceNode::decode(hdr.trace_payload()));
+ cmd.getTrace().addChild(mbus::TraceNode::decode(hdr.trace_payload()));
}
if (cmd.getTrace().shouldTrace(TraceLevel::SEND_RECEIVE)) {
cmd.getTrace().trace(TraceLevel::SEND_RECEIVE,
diff --git a/storage/src/vespa/storage/visiting/memory_bounded_trace.cpp b/storage/src/vespa/storage/visiting/memory_bounded_trace.cpp
index 9f9eb2942c1..77eb7bd18b8 100644
--- a/storage/src/vespa/storage/visiting/memory_bounded_trace.cpp
+++ b/storage/src/vespa/storage/visiting/memory_bounded_trace.cpp
@@ -48,7 +48,7 @@ MemoryBoundedTrace::add(const mbus::TraceNode& node)
}
void
-MemoryBoundedTrace::moveTraceTo(mbus::TraceNode& out)
+MemoryBoundedTrace::moveTraceTo(mbus::Trace& out)
{
if (_node.isEmpty()) {
return;
diff --git a/storage/src/vespa/storage/visiting/memory_bounded_trace.h b/storage/src/vespa/storage/visiting/memory_bounded_trace.h
index 71ce1be51ac..1c20e56cae0 100644
--- a/storage/src/vespa/storage/visiting/memory_bounded_trace.h
+++ b/storage/src/vespa/storage/visiting/memory_bounded_trace.h
@@ -33,7 +33,7 @@ public:
*
* If current trace is empty, no nodes are added to `out`.
*/
- void moveTraceTo(mbus::TraceNode& out);
+ void moveTraceTo(mbus::Trace& out);
size_t getApproxMemoryUsed() const noexcept {
return _currentMemoryUsed;
diff --git a/storage/src/vespa/storage/visiting/visitor.cpp b/storage/src/vespa/storage/visiting/visitor.cpp
index 2684ca03462..540020e978b 100644
--- a/storage/src/vespa/storage/visiting/visitor.cpp
+++ b/storage/src/vespa/storage/visiting/visitor.cpp
@@ -371,10 +371,9 @@ Visitor::sendReplyOnce()
std::shared_ptr<api::StorageReply> reply(_initiatingCmd->makeReply());
_hitCounter->updateVisitorStatistics(_visitorStatistics);
- static_cast<api::CreateVisitorReply*>(reply.get())
- ->setVisitorStatistics(_visitorStatistics);
+ static_cast<api::CreateVisitorReply*>(reply.get())->setVisitorStatistics(_visitorStatistics);
if (shouldAddMbusTrace()) {
- _trace.moveTraceTo(reply->getTrace().getRoot());
+ _trace.moveTraceTo(reply->getTrace());
}
reply->setResult(_result);
LOG(debug, "Sending %s", reply->toString(true).c_str());