aboutsummaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2023-05-10 10:44:47 +0200
committerTor Egge <Tor.Egge@online.no>2023-05-10 10:44:47 +0200
commitca7f494815f3149439263526d316333b06cc7720 (patch)
tree0ebc1f024a505a432b38e31e12615e582a2c9a0a /streamingvisitors
parent32cc36e3af0b5e24fdcb27ece4e5920042a8c483 (diff)
Pass transport and file distributor connection spec to SearchEnvironment
in preparation for using RankingAssetsBuilder when handling config in streaming search.
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp7
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchenvironment.cpp20
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchenvironment.h20
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp7
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.h2
5 files changed, 35 insertions, 21 deletions
diff --git a/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp b/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp
index 43309e9fe70..9b99df32d03 100644
--- a/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp
+++ b/streamingvisitors/src/tests/searchvisitor/searchvisitor_test.cpp
@@ -4,6 +4,7 @@
#include <vespa/document/datatype/documenttype.h>
#include <vespa/document/fieldvalue/document.h>
#include <vespa/document/repo/documenttyperepo.h>
+#include <vespa/fnet/transport.h>
#include <vespa/persistence/spi/docentry.h>
#include <vespa/searchlib/query/tree/querybuilder.h>
#include <vespa/searchlib/query/tree/simplequery.h>
@@ -125,6 +126,7 @@ public:
framework::defaultimplementation::FakeClock _clock;
StorageComponentRegisterImpl _componentRegister;
std::unique_ptr<StorageComponent> _component;
+ FNET_Transport _transport;
SearchEnvironment _env;
SearchVisitorFactory _factory;
std::shared_ptr<DocumentTypeRepo> _repo;
@@ -159,8 +161,9 @@ public:
SearchVisitorTest::SearchVisitorTest() :
_componentRegister(),
- _env(::config::ConfigUri("dir:cfg")),
- _factory(::config::ConfigUri("dir:cfg")),
+ _transport(),
+ _env(::config::ConfigUri("dir:cfg"), _transport, ""),
+ _factory(::config::ConfigUri("dir:cfg"), _transport, ""),
_repo(std::make_shared<DocumentTypeRepo>(readDocumenttypesConfig("cfg/documenttypes.cfg"))),
_doc_type(_repo->getDocumentType("test"))
{
diff --git a/streamingvisitors/src/vespa/searchvisitor/searchenvironment.cpp b/streamingvisitors/src/vespa/searchvisitor/searchenvironment.cpp
index 5f4db0fe2d9..9f33c9b2ea1 100644
--- a/streamingvisitors/src/vespa/searchvisitor/searchenvironment.cpp
+++ b/streamingvisitors/src/vespa/searchvisitor/searchenvironment.cpp
@@ -15,14 +15,16 @@ namespace streaming {
__thread SearchEnvironment::EnvMap * SearchEnvironment::_localEnvMap = nullptr;
-SearchEnvironment::Env::Env(const config::ConfigUri& configUri, const Fast_NormalizeWordFolder& wf)
+SearchEnvironment::Env::Env(const config::ConfigUri& configUri, const Fast_NormalizeWordFolder& wf, FNET_Transport& transport, const vespalib::string& file_distributor_connection_spec)
: _configId(configUri.getConfigId()),
_configurer(std::make_unique<config::SimpleConfigRetriever>(createKeySet(configUri.getConfigId()), configUri.getContext()), this),
_vsmAdapter(std::make_unique<VSMAdapter>(_configId, wf)),
_rankManager(std::make_unique<RankManager>(_vsmAdapter.get())),
- _snapshot()
+ _snapshot(),
+ _lock(),
+ _transport(transport),
+ _file_distributor_connection_spec(file_distributor_connection_spec)
{
-
_configurer.start();
}
@@ -61,10 +63,12 @@ SearchEnvironment::Env::~Env()
_configurer.close();
}
-SearchEnvironment::SearchEnvironment(const config::ConfigUri & configUri) :
- VisitorEnvironment(),
- _envMap(),
- _configUri(configUri)
+SearchEnvironment::SearchEnvironment(const config::ConfigUri & configUri, FNET_Transport& transport, const vespalib::string& file_distributor_connection_spec)
+ : VisitorEnvironment(),
+ _envMap(),
+ _configUri(configUri),
+ _transport(transport),
+ _file_distributor_connection_spec(file_distributor_connection_spec)
{
}
@@ -91,7 +95,7 @@ SearchEnvironment::getEnv(const vespalib::string & searchCluster)
EnvMap::iterator found = _envMap.find(searchCluster);
if (found == _envMap.end()) {
LOG(debug, "Init VSMAdapter with config id = '%s'", searchCluster.c_str());
- Env::SP env = std::make_shared<Env>(searchClusterUri, _wordFolder);
+ Env::SP env = std::make_shared<Env>(searchClusterUri, _wordFolder, _transport, _file_distributor_connection_spec);
_envMap[searchCluster] = std::move(env);
found = _envMap.find(searchCluster);
}
diff --git a/streamingvisitors/src/vespa/searchvisitor/searchenvironment.h b/streamingvisitors/src/vespa/searchvisitor/searchenvironment.h
index 2fdd11d6a77..7b9e878217b 100644
--- a/streamingvisitors/src/vespa/searchvisitor/searchenvironment.h
+++ b/streamingvisitors/src/vespa/searchvisitor/searchenvironment.h
@@ -11,6 +11,8 @@
#include <vespa/fastlib/text/normwordfolder.h>
#include <mutex>
+class FNET_Transport;
+
namespace streaming {
class SearchEnvironmentSnapshot;
@@ -21,19 +23,21 @@ private:
class Env : public config::SimpleConfigurable {
public:
using SP = std::shared_ptr<Env>;
- Env(const config::ConfigUri& configUri, const Fast_NormalizeWordFolder& wf);
+ Env(const config::ConfigUri& configUri, const Fast_NormalizeWordFolder& wf, FNET_Transport& transport, const vespalib::string& file_distributor_connection_spec);
~Env() override;
void configure(const config::ConfigSnapshot & snapshot) override;
static config::ConfigKeySet createKeySet(const vespalib::string & configId);
std::shared_ptr<const SearchEnvironmentSnapshot> get_snapshot();
private:
- const vespalib::string _configId;
- config::SimpleConfigurer _configurer;
- std::unique_ptr<vsm::VSMAdapter> _vsmAdapter;
- std::unique_ptr<RankManager> _rankManager;
+ const vespalib::string _configId;
+ config::SimpleConfigurer _configurer;
+ std::unique_ptr<vsm::VSMAdapter> _vsmAdapter;
+ std::unique_ptr<RankManager> _rankManager;
std::shared_ptr<const SearchEnvironmentSnapshot> _snapshot;
- std::mutex _lock;
+ std::mutex _lock;
+ FNET_Transport& _transport;
+ const vespalib::string _file_distributor_connection_spec;
};
using EnvMap = vespalib::hash_map<vespalib::string, Env::SP>;
using EnvMapUP = std::unique_ptr<EnvMap>;
@@ -45,11 +49,13 @@ private:
std::mutex _lock;
Fast_NormalizeWordFolder _wordFolder;
config::ConfigUri _configUri;
+ FNET_Transport& _transport;
+ vespalib::string _file_distributor_connection_spec;
Env & getEnv(const vespalib::string & searchcluster);
public:
- SearchEnvironment(const config::ConfigUri & configUri);
+ SearchEnvironment(const config::ConfigUri & configUri, FNET_Transport& transport, const vespalib::string& file_distributor_connection_spec);
~SearchEnvironment();
std::shared_ptr<const SearchEnvironmentSnapshot> get_snapshot(const vespalib::string& search_cluster);
// Should only be used by unit tests to simulate that the calling thread is finished.
diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
index 94bc3da7df9..f9397c7b63f 100644
--- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
+++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
@@ -459,11 +459,12 @@ void SearchVisitor::init(const Parameters & params)
VISITOR_TRACE(6, "Completed lazy VSM adapter initialization");
}
-SearchVisitorFactory::SearchVisitorFactory(const config::ConfigUri & configUri)
+SearchVisitorFactory::SearchVisitorFactory(const config::ConfigUri & configUri, FNET_Transport& transport, const vespalib::string& file_distributor_connection_spec)
: VisitorFactory(),
_configUri(configUri),
- _env(std::make_shared<SearchEnvironment>(_configUri))
-{}
+ _env(std::make_shared<SearchEnvironment>(_configUri, transport, file_distributor_connection_spec))
+{
+}
SearchVisitorFactory::~SearchVisitorFactory() = default;
diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h
index daeb4013ebd..e4fa756e28d 100644
--- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h
+++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h
@@ -496,7 +496,7 @@ class SearchVisitorFactory : public storage::VisitorFactory {
storage::Visitor* makeVisitor(storage::StorageComponent&, storage::VisitorEnvironment&env,
const vdslib::Parameters& params) override;
public:
- explicit SearchVisitorFactory(const config::ConfigUri & configUri);
+ explicit SearchVisitorFactory(const config::ConfigUri & configUri, FNET_Transport& transport, const vespalib::string& file_distributor_connection_spec);
~SearchVisitorFactory() override;
};