summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2020-11-25 12:56:50 +0000
committerGeir Storli <geirst@verizonmedia.com>2020-11-25 12:56:50 +0000
commitc090dda709692c07ca492b698af9db3e1a76d8e1 (patch)
treee56a9ffc11f4b8d2fc3856faf1bdf7b925ff4196 /searchcore
parentaa903bfbf23d3b855d50de185a15d8061825c778 (diff)
Create the mbus::Route on demand instead of storing it inside StorageMessageAddress.
Creating and deleting the route is expensive and not used with RPC for Storage API communication.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/apps/vespa-feed-bm/document_api_message_bus_bm_feed_handler.cpp5
-rw-r--r--searchcore/src/apps/vespa-feed-bm/document_api_message_bus_bm_feed_handler.h2
-rw-r--r--searchcore/src/apps/vespa-feed-bm/storage_api_message_bus_bm_feed_handler.cpp5
-rw-r--r--searchcore/src/apps/vespa-feed-bm/storage_api_message_bus_bm_feed_handler.h2
4 files changed, 10 insertions, 4 deletions
diff --git a/searchcore/src/apps/vespa-feed-bm/document_api_message_bus_bm_feed_handler.cpp b/searchcore/src/apps/vespa-feed-bm/document_api_message_bus_bm_feed_handler.cpp
index e6502d14347..714add169fd 100644
--- a/searchcore/src/apps/vespa-feed-bm/document_api_message_bus_bm_feed_handler.cpp
+++ b/searchcore/src/apps/vespa-feed-bm/document_api_message_bus_bm_feed_handler.cpp
@@ -23,7 +23,8 @@ DocumentApiMessageBusBmFeedHandler::DocumentApiMessageBusBmFeedHandler(BmMessage
: IBmFeedHandler(),
_name(vespalib::string("DocumentApiMessageBusBmFeedHandler(distributor)")),
_storage_address(std::make_unique<StorageMessageAddress>("storage", NodeType::DISTRIBUTOR, 0)),
- _message_bus(message_bus)
+ _message_bus(message_bus),
+ _route(_storage_address->to_mbus_route())
{
}
@@ -32,7 +33,7 @@ DocumentApiMessageBusBmFeedHandler::~DocumentApiMessageBusBmFeedHandler() = defa
void
DocumentApiMessageBusBmFeedHandler::send_msg(std::unique_ptr<documentapi::DocumentMessage> msg, PendingTracker& pending_tracker)
{
- _message_bus.send_msg(std::move(msg), _storage_address->getRoute(), pending_tracker);
+ _message_bus.send_msg(std::move(msg), _route, pending_tracker);
}
void
diff --git a/searchcore/src/apps/vespa-feed-bm/document_api_message_bus_bm_feed_handler.h b/searchcore/src/apps/vespa-feed-bm/document_api_message_bus_bm_feed_handler.h
index 42bc61e587e..52e0b89007f 100644
--- a/searchcore/src/apps/vespa-feed-bm/document_api_message_bus_bm_feed_handler.h
+++ b/searchcore/src/apps/vespa-feed-bm/document_api_message_bus_bm_feed_handler.h
@@ -3,6 +3,7 @@
#pragma once
#include "i_bm_feed_handler.h"
+#include <vespa/messagebus/routing/route.h>
namespace document { class DocumentTypeRepo; }
namespace documentapi { class DocumentMessage; };
@@ -21,6 +22,7 @@ class DocumentApiMessageBusBmFeedHandler : public IBmFeedHandler
vespalib::string _name;
std::unique_ptr<storage::api::StorageMessageAddress> _storage_address;
BmMessageBus& _message_bus;
+ mbus::Route _route;
void send_msg(std::unique_ptr<documentapi::DocumentMessage> msg, PendingTracker& tracker);
public:
DocumentApiMessageBusBmFeedHandler(BmMessageBus &message_bus);
diff --git a/searchcore/src/apps/vespa-feed-bm/storage_api_message_bus_bm_feed_handler.cpp b/searchcore/src/apps/vespa-feed-bm/storage_api_message_bus_bm_feed_handler.cpp
index 731b90888ea..18c1b979895 100644
--- a/searchcore/src/apps/vespa-feed-bm/storage_api_message_bus_bm_feed_handler.cpp
+++ b/searchcore/src/apps/vespa-feed-bm/storage_api_message_bus_bm_feed_handler.cpp
@@ -22,7 +22,8 @@ StorageApiMessageBusBmFeedHandler::StorageApiMessageBusBmFeedHandler(BmMessageBu
_name(vespalib::string("StorageApiMessageBusBmFeedHandler(") + (distributor ? "distributor" : "service-layer") + ")"),
_distributor(distributor),
_storage_address(std::make_unique<StorageMessageAddress>("storage", distributor ? NodeType::DISTRIBUTOR : NodeType::STORAGE, 0)),
- _message_bus(message_bus)
+ _message_bus(message_bus),
+ _route(_storage_address->to_mbus_route())
{
}
@@ -33,7 +34,7 @@ StorageApiMessageBusBmFeedHandler::send_msg(std::shared_ptr<storage::api::Storag
{
cmd->setSourceIndex(0);
auto msg = std::make_unique<storage::mbusprot::StorageCommand>(cmd);
- _message_bus.send_msg(std::move(msg), _storage_address->getRoute(), pending_tracker);
+ _message_bus.send_msg(std::move(msg), _route, pending_tracker);
}
void
diff --git a/searchcore/src/apps/vespa-feed-bm/storage_api_message_bus_bm_feed_handler.h b/searchcore/src/apps/vespa-feed-bm/storage_api_message_bus_bm_feed_handler.h
index 82447e1e873..6925053ad43 100644
--- a/searchcore/src/apps/vespa-feed-bm/storage_api_message_bus_bm_feed_handler.h
+++ b/searchcore/src/apps/vespa-feed-bm/storage_api_message_bus_bm_feed_handler.h
@@ -3,6 +3,7 @@
#pragma once
#include "i_bm_feed_handler.h"
+#include <vespa/messagebus/routing/route.h>
namespace document { class DocumentTypeRepo; }
namespace documentapi { class DocumentMessage; };
@@ -25,6 +26,7 @@ class StorageApiMessageBusBmFeedHandler : public IBmFeedHandler
bool _distributor;
std::unique_ptr<storage::api::StorageMessageAddress> _storage_address;
BmMessageBus& _message_bus;
+ mbus::Route _route;
void send_msg(std::shared_ptr<storage::api::StorageCommand> cmd, PendingTracker& tracker);
public:
StorageApiMessageBusBmFeedHandler(BmMessageBus &message_bus, bool distributor);