aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-12-08 17:40:48 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-12-08 17:40:48 +0000
commit8e910e3977c4522f3c99764f79fa8f374271c224 (patch)
treeab5497dc3038345fcaaa262a6f3e4213f7e123df
parent11d358a64324317b3f63dae3be4cbe37f735473d (diff)
Add SessionManager in IDocumentDBOwner, but only use in mocks in tests for now.
-rw-r--r--searchcore/src/apps/tests/persistenceconformance_test.cpp26
-rw-r--r--searchcore/src/tests/proton/docsummary/docsummary.cpp58
-rw-r--r--searchcore/src/tests/proton/documentdb/documentdb_test.cpp35
-rw-r--r--searchcore/src/vespa/searchcore/bmcluster/bm_node.cpp44
-rw-r--r--searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/idocumentdbowner.h3
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton.cpp6
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton.h1
-rw-r--r--searchcore/src/vespa/searchcore/proton/test/CMakeLists.txt1
-rw-r--r--searchcore/src/vespa/searchcore/proton/test/dummydbowner.cpp25
-rw-r--r--searchcore/src/vespa/searchcore/proton/test/dummydbowner.h (renamed from searchcore/src/tests/proton/common/dummydbowner.h)13
12 files changed, 114 insertions, 101 deletions
diff --git a/searchcore/src/apps/tests/persistenceconformance_test.cpp b/searchcore/src/apps/tests/persistenceconformance_test.cpp
index 0db14538630..52e2a314fd2 100644
--- a/searchcore/src/apps/tests/persistenceconformance_test.cpp
+++ b/searchcore/src/apps/tests/persistenceconformance_test.cpp
@@ -1,21 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/vespalib/testkit/testapp.h>
-
-#include <tests/proton/common/dummydbowner.h>
-#include <vespa/config-attributes.h>
-#include <vespa/config-bucketspaces.h>
-#include <vespa/config-imported-fields.h>
-#include <vespa/config-indexschema.h>
-#include <vespa/config-rank-profiles.h>
-#include <vespa/config-summary.h>
-#include <vespa/config/subscription/sourcespec.h>
-#include <vespa/document/base/testdocman.h>
-#include <vespa/document/config/documenttypes_config_fwd.h>
-#include <vespa/document/repo/documenttyperepo.h>
-#include <vespa/document/test/make_bucket_space.h>
-#include <vespa/fastos/file.h>
#include <vespa/persistence/conformancetest/conformancetest.h>
+#include <vespa/searchcore/proton/test/dummydbowner.h>
#include <vespa/searchcore/proton/common/alloc_config.h>
#include <vespa/searchcore/proton/common/hw_info.h>
#include <vespa/searchcore/proton/matching/querylimiter.h>
@@ -36,6 +23,17 @@
#include <vespa/searchlib/index/dummyfileheadercontext.h>
#include <vespa/searchlib/transactionlog/translogserver.h>
#include <vespa/searchsummary/config/config-juniperrc.h>
+#include <vespa/config-attributes.h>
+#include <vespa/config-bucketspaces.h>
+#include <vespa/config-imported-fields.h>
+#include <vespa/config-indexschema.h>
+#include <vespa/config-rank-profiles.h>
+#include <vespa/config-summary.h>
+#include <vespa/config/subscription/sourcespec.h>
+#include <vespa/document/base/testdocman.h>
+#include <vespa/document/config/documenttypes_config_fwd.h>
+#include <vespa/document/repo/documenttyperepo.h>
+#include <vespa/document/test/make_bucket_space.h>
#include <vespa/vespalib/util/size_literals.h>
#include <filesystem>
diff --git a/searchcore/src/tests/proton/docsummary/docsummary.cpp b/searchcore/src/tests/proton/docsummary/docsummary.cpp
index 5b081fb5b51..9709530f2c2 100644
--- a/searchcore/src/tests/proton/docsummary/docsummary.cpp
+++ b/searchcore/src/tests/proton/docsummary/docsummary.cpp
@@ -1,6 +1,34 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <tests/proton/common/dummydbowner.h>
+#include <vespa/searchcore/proton/test/dummydbowner.h>
+#include <vespa/searchcore/proton/attribute/attribute_writer.h>
+#include <vespa/searchcore/proton/docsummary/docsumcontext.h>
+#include <vespa/searchcore/proton/docsummary/documentstoreadapter.h>
+#include <vespa/searchcore/proton/documentmetastore/documentmetastore.h>
+#include <vespa/searchcore/proton/feedoperation/putoperation.h>
+#include <vespa/searchcore/proton/matching/querylimiter.h>
+#include <vespa/searchcore/proton/metrics/metricswireservice.h>
+#include <vespa/searchcore/proton/server/bootstrapconfig.h>
+#include <vespa/searchcore/proton/server/documentdb.h>
+#include <vespa/searchcore/proton/server/documentdbconfigmanager.h>
+#include <vespa/searchcore/proton/server/feedhandler.h>
+#include <vespa/searchcore/proton/server/idocumentsubdb.h>
+#include <vespa/searchcore/proton/server/memoryconfigstore.h>
+#include <vespa/searchcore/proton/server/searchview.h>
+#include <vespa/searchcore/proton/server/summaryadapter.h>
+#include <vespa/searchcore/proton/test/bucketfactory.h>
+#include <vespa/searchcore/proton/test/mock_shared_threading_service.h>
+#include <vespa/searchlib/attribute/interlock.h>
+#include <vespa/searchlib/engine/docsumapi.h>
+#include <vespa/searchlib/index/dummyfileheadercontext.h>
+#include <vespa/searchlib/tensor/tensor_attribute.h>
+#include <vespa/searchlib/test/doc_builder.h>
+#include <vespa/searchlib/transactionlog/nosyncproxy.h>
+#include <vespa/searchlib/transactionlog/translogserver.h>
+#include <vespa/searchsummary/docsummary/i_docsum_field_writer_factory.h>
+#include <vespa/searchsummary/docsummary/i_docsum_store_document.h>
+#include <vespa/searchsummary/docsummary/i_juniper_converter.h>
+#include <vespa/searchsummary/docsummary/linguisticsannotation.h>
#include <vespa/config-bucketspaces.h>
#include <vespa/config/helper/configgetter.hpp>
#include <vespa/document/annotation/annotation.h>
@@ -31,34 +59,6 @@
#include <vespa/eval/eval/tensor_spec.h>
#include <vespa/eval/eval/test/value_compare.h>
#include <vespa/eval/eval/value.h>
-#include <vespa/searchcore/proton/attribute/attribute_writer.h>
-#include <vespa/searchcore/proton/docsummary/docsumcontext.h>
-#include <vespa/searchcore/proton/docsummary/documentstoreadapter.h>
-#include <vespa/searchcore/proton/documentmetastore/documentmetastore.h>
-#include <vespa/searchcore/proton/feedoperation/putoperation.h>
-#include <vespa/searchcore/proton/matching/querylimiter.h>
-#include <vespa/searchcore/proton/metrics/metricswireservice.h>
-#include <vespa/searchcore/proton/server/bootstrapconfig.h>
-#include <vespa/searchcore/proton/server/documentdb.h>
-#include <vespa/searchcore/proton/server/documentdbconfigmanager.h>
-#include <vespa/searchcore/proton/server/feedhandler.h>
-#include <vespa/searchcore/proton/server/idocumentsubdb.h>
-#include <vespa/searchcore/proton/server/memoryconfigstore.h>
-#include <vespa/searchcore/proton/server/searchview.h>
-#include <vespa/searchcore/proton/server/summaryadapter.h>
-#include <vespa/searchcore/proton/test/bucketfactory.h>
-#include <vespa/searchcore/proton/test/mock_shared_threading_service.h>
-#include <vespa/searchlib/attribute/interlock.h>
-#include <vespa/searchlib/engine/docsumapi.h>
-#include <vespa/searchlib/index/dummyfileheadercontext.h>
-#include <vespa/searchlib/tensor/tensor_attribute.h>
-#include <vespa/searchlib/test/doc_builder.h>
-#include <vespa/searchlib/transactionlog/nosyncproxy.h>
-#include <vespa/searchlib/transactionlog/translogserver.h>
-#include <vespa/searchsummary/docsummary/i_docsum_field_writer_factory.h>
-#include <vespa/searchsummary/docsummary/i_docsum_store_document.h>
-#include <vespa/searchsummary/docsummary/i_juniper_converter.h>
-#include <vespa/searchsummary/docsummary/linguisticsannotation.h>
#include <vespa/vespalib/data/simple_buffer.h>
#include <vespa/vespalib/data/slime/json_format.h>
#include <vespa/vespalib/data/slime/slime.h>
diff --git a/searchcore/src/tests/proton/documentdb/documentdb_test.cpp b/searchcore/src/tests/proton/documentdb/documentdb_test.cpp
index 916f3106923..7aa18513f73 100644
--- a/searchcore/src/tests/proton/documentdb/documentdb_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/documentdb_test.cpp
@@ -1,13 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <tests/proton/common/dummydbowner.h>
-#include <vespa/config-bucketspaces.h>
-#include <vespa/config/subscription/sourcespec.h>
-#include <vespa/document/config/documenttypes_config_fwd.h>
-#include <vespa/document/datatype/documenttype.h>
-#include <vespa/document/repo/documenttyperepo.h>
-#include <vespa/document/test/make_bucket_space.h>
-#include <vespa/fnet/transport.h>
+#include <vespa/searchcore/proton/test/dummydbowner.h>
#include <vespa/searchcore/proton/attribute/flushableattribute.h>
#include <vespa/searchcore/proton/common/statusreport.h>
#include <vespa/searchcore/proton/docsummary/summaryflushtarget.h>
@@ -18,6 +11,7 @@
#include <vespa/searchcore/proton/metrics/job_tracked_flush_target.h>
#include <vespa/searchcore/proton/metrics/metricswireservice.h>
#include <vespa/searchcore/proton/reference/i_document_db_reference.h>
+#include <vespa/searchcore/proton/reference/i_document_db_reference_registry.h>
#include <vespa/searchcore/proton/server/bootstrapconfig.h>
#include <vespa/searchcore/proton/server/document_db_explorer.h>
#include <vespa/searchcore/proton/server/documentdb.h>
@@ -27,6 +21,13 @@
#include <vespa/searchcore/proton/server/memoryconfigstore.h>
#include <vespa/searchcore/proton/test/mock_shared_threading_service.h>
#include <vespa/searchcorespi/index/indexflushtarget.h>
+#include <vespa/config-bucketspaces.h>
+#include <vespa/config/subscription/sourcespec.h>
+#include <vespa/document/config/documenttypes_config_fwd.h>
+#include <vespa/document/datatype/documenttype.h>
+#include <vespa/document/repo/documenttyperepo.h>
+#include <vespa/document/test/make_bucket_space.h>
+#include <vespa/fnet/transport.h>
#include <vespa/searchlib/attribute/attribute_read_guard.h>
#include <vespa/searchlib/attribute/interlock.h>
#include <vespa/searchlib/index/dummyfileheadercontext.h>
@@ -78,22 +79,6 @@ config_subdir(SerialNum serialNum)
return os.str();
}
-struct MyDBOwner : public DummyDBOwner
-{
- std::shared_ptr<DocumentDBReferenceRegistry> _registry;
- MyDBOwner();
- ~MyDBOwner() override;
- std::shared_ptr<IDocumentDBReferenceRegistry> getDocumentDBReferenceRegistry() const override {
- return _registry;
- }
-};
-
-MyDBOwner::MyDBOwner()
- : DummyDBOwner(),
- _registry(std::make_shared<DocumentDBReferenceRegistry>())
-{}
-MyDBOwner::~MyDBOwner() = default;
-
struct FixtureBase {
bool _cleanup;
bool _file_config;
@@ -119,7 +104,7 @@ FixtureBase::~FixtureBase()
struct Fixture : public FixtureBase {
DummyWireService _dummy;
- MyDBOwner _myDBOwner;
+ DummyDBOwner _myDBOwner;
vespalib::ThreadStackExecutor _summaryExecutor;
MockSharedThreadingService _shared_service;
HwInfo _hwInfo;
diff --git a/searchcore/src/vespa/searchcore/bmcluster/bm_node.cpp b/searchcore/src/vespa/searchcore/bmcluster/bm_node.cpp
index a33d9682973..5e392b12f67 100644
--- a/searchcore/src/vespa/searchcore/bmcluster/bm_node.cpp
+++ b/searchcore/src/vespa/searchcore/bmcluster/bm_node.cpp
@@ -9,28 +9,7 @@
#include "bm_storage_link_context.h"
#include "i_bm_distribution.h"
#include "storage_api_rpc_bm_feed_handler.h"
-#include <tests/proton/common/dummydbowner.h>
-#include <vespa/config-attributes.h>
-#include <vespa/config-bucketspaces.h>
-#include <vespa/config-imported-fields.h>
-#include <vespa/config-indexschema.h>
-#include <vespa/config-persistence.h>
-#include <vespa/config-rank-profiles.h>
-#include <vespa/config-slobroks.h>
-#include <vespa/config-stor-distribution.h>
-#include <vespa/config-stor-filestor.h>
-#include <vespa/config-summary.h>
-#include <vespa/config-upgrading.h>
-#include <vespa/config/common/configcontext.h>
-#include <vespa/document/bucket/bucketspace.h>
-#include <vespa/document/config/documenttypes_config_fwd.h>
-#include <vespa/document/repo/configbuilder.h>
-#include <vespa/document/repo/document_type_repo_factory.h>
-#include <vespa/document/repo/documenttyperepo.h>
-#include <vespa/document/test/make_bucket_space.h>
-#include <vespa/messagebus/config-messagebus.h>
-#include <vespa/messagebus/testlib/slobrok.h>
-#include <vespa/metrics/config-metricsmanager.h>
+#include <vespa/searchcore/proton/test/dummydbowner.h>
#include <vespa/searchcore/proton/common/alloc_config.h>
#include <vespa/searchcore/proton/matching/querylimiter.h>
#include <vespa/searchcore/proton/metrics/metricswireservice.h>
@@ -70,6 +49,27 @@
#include <vespa/vdslib/state/clusterstate.h>
#include <vespa/vespalib/stllike/asciistream.h>
#include <vespa/vespalib/util/size_literals.h>
+#include <vespa/config-attributes.h>
+#include <vespa/config-bucketspaces.h>
+#include <vespa/config-imported-fields.h>
+#include <vespa/config-indexschema.h>
+#include <vespa/config-persistence.h>
+#include <vespa/config-rank-profiles.h>
+#include <vespa/config-slobroks.h>
+#include <vespa/config-stor-distribution.h>
+#include <vespa/config-stor-filestor.h>
+#include <vespa/config-summary.h>
+#include <vespa/config-upgrading.h>
+#include <vespa/config/common/configcontext.h>
+#include <vespa/document/bucket/bucketspace.h>
+#include <vespa/document/config/documenttypes_config_fwd.h>
+#include <vespa/document/repo/configbuilder.h>
+#include <vespa/document/repo/document_type_repo_factory.h>
+#include <vespa/document/repo/documenttyperepo.h>
+#include <vespa/document/test/make_bucket_space.h>
+#include <vespa/messagebus/config-messagebus.h>
+#include <vespa/messagebus/testlib/slobrok.h>
+#include <vespa/metrics/config-metricsmanager.h>
#include <filesystem>
#include <vespa/log/log.h>
diff --git a/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp b/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp
index 2535b518335..f333af19ed3 100644
--- a/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp
+++ b/searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp
@@ -2,7 +2,6 @@
#include "documentdb_tagged_metrics.h"
#include <vespa/vespalib/util/stringfmt.h>
-#include <vespa/vespalib/util/exceptions.h>
#include <vespa/log/log.h>
LOG_SETUP(".proton.metrics.documentdb_tagged_metrics");
diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp
index 3fe7fd6cfde..6b97d41e459 100644
--- a/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp
@@ -1,7 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "documentdb_metrics_updater.h"
-#include "ddbstate.h"
#include "document_meta_store_read_guards.h"
#include "documentsubdbcollection.h"
#include "executorthreadingservice.h"
@@ -12,7 +11,6 @@
#include <vespa/searchcore/proton/attribute/i_attribute_manager.h>
#include <vespa/searchcore/proton/docsummary/isummarymanager.h>
#include <vespa/searchcore/proton/matching/matching_stats.h>
-#include <vespa/searchcore/proton/matching/matching_stats.h>
#include <vespa/searchcore/proton/metrics/documentdb_job_trackers.h>
#include <vespa/searchcore/proton/metrics/executor_threading_service_stats.h>
#include <vespa/searchlib/attribute/attributevector.h>
diff --git a/searchcore/src/vespa/searchcore/proton/server/idocumentdbowner.h b/searchcore/src/vespa/searchcore/proton/server/idocumentdbowner.h
index dc060f6a84b..36ac3427e66 100644
--- a/searchcore/src/vespa/searchcore/proton/server/idocumentdbowner.h
+++ b/searchcore/src/vespa/searchcore/proton/server/idocumentdbowner.h
@@ -8,14 +8,17 @@
namespace proton {
class IDocumentDBReferenceRegistry;
+namespace matching { class SessionManager; }
class IDocumentDBOwner
{
public:
+ using SessionManager = matching::SessionManager;
virtual ~IDocumentDBOwner();
virtual bool isInitializing() const = 0;
virtual uint32_t getDistributionKey() const = 0;
+ virtual SessionManager & session_manager() = 0;
virtual std::shared_ptr<IDocumentDBReferenceRegistry> getDocumentDBReferenceRegistry() const = 0;
};
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.cpp b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
index 3635aba9e10..3b1a88774b7 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
@@ -997,6 +997,12 @@ Proton::getDocumentDBReferenceRegistry() const
return _documentDBReferenceRegistry;
}
+matching::SessionManager &
+Proton::session_manager() {
+ // Temporary and will not be called used yet
+ abort();
+}
+
storage::spi::PersistenceProvider &
Proton::getPersistence()
{
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.h b/searchcore/src/vespa/searchcore/proton/server/proton.h
index 0d4b067eea1..235bd120821 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton.h
+++ b/searchcore/src/vespa/searchcore/proton/server/proton.h
@@ -141,6 +141,7 @@ private:
uint32_t getDistributionKey() const override { return _distributionKey; }
BootstrapConfig::SP getActiveConfigSnapshot() const;
std::shared_ptr<IDocumentDBReferenceRegistry> getDocumentDBReferenceRegistry() const override;
+ SessionManager & session_manager() override;
// Returns true if the node is up in _any_ bucket space
bool updateNodeUp(BucketSpace bucketSpace, bool nodeUpInBucketSpace);
void closeDocumentDBs(vespalib::ThreadStackExecutorBase & executor);
diff --git a/searchcore/src/vespa/searchcore/proton/test/CMakeLists.txt b/searchcore/src/vespa/searchcore/proton/test/CMakeLists.txt
index ad86ce64d8e..79b0582e1d0 100644
--- a/searchcore/src/vespa/searchcore/proton/test/CMakeLists.txt
+++ b/searchcore/src/vespa/searchcore/proton/test/CMakeLists.txt
@@ -10,6 +10,7 @@ vespa_add_library(searchcore_test STATIC
documentdb_config_builder.cpp
dummy_feed_view.cpp
dummy_flush_target.cpp
+ dummydbowner.cpp
mock_index_manager.cpp
mock_shared_threading_service.cpp
userdocumentsbuilder.cpp
diff --git a/searchcore/src/vespa/searchcore/proton/test/dummydbowner.cpp b/searchcore/src/vespa/searchcore/proton/test/dummydbowner.cpp
new file mode 100644
index 00000000000..d91d0261006
--- /dev/null
+++ b/searchcore/src/vespa/searchcore/proton/test/dummydbowner.cpp
@@ -0,0 +1,25 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "dummydbowner.h"
+#include <vespa/searchcore/proton/reference/document_db_reference_registry.h>
+#include <vespa/searchcore/proton/matching/sessionmanager.h>
+
+namespace proton {
+
+DummyDBOwner::DummyDBOwner()
+ : _registry(std::make_shared<DocumentDBReferenceRegistry>()),
+ _sessionManager(std::make_unique<SessionManager>(10))
+{}
+DummyDBOwner::~DummyDBOwner() = default;
+
+std::shared_ptr<IDocumentDBReferenceRegistry>
+DummyDBOwner::getDocumentDBReferenceRegistry() const {
+ return _registry;
+}
+
+matching::SessionManager &
+DummyDBOwner::session_manager() {
+ return *_sessionManager;
+}
+
+}
diff --git a/searchcore/src/tests/proton/common/dummydbowner.h b/searchcore/src/vespa/searchcore/proton/test/dummydbowner.h
index 1fa9c17257c..99ccb0ab56d 100644
--- a/searchcore/src/tests/proton/common/dummydbowner.h
+++ b/searchcore/src/vespa/searchcore/proton/test/dummydbowner.h
@@ -3,25 +3,22 @@
#pragma once
#include <vespa/searchcore/proton/server/idocumentdbowner.h>
-#include <vespa/searchcore/proton/reference/document_db_reference_registry.h>
#include <vespa/vespalib/stllike/string.h>
namespace proton {
struct DummyDBOwner : IDocumentDBOwner {
std::shared_ptr<IDocumentDBReferenceRegistry> _registry;
+ std::unique_ptr<SessionManager> _sessionManager;
- DummyDBOwner()
- : _registry(std::make_shared<DocumentDBReferenceRegistry>())
- {}
- ~DummyDBOwner() {}
+ DummyDBOwner();
+ ~DummyDBOwner() override;
bool isInitializing() const override { return false; }
uint32_t getDistributionKey() const override { return -1; }
- std::shared_ptr<IDocumentDBReferenceRegistry> getDocumentDBReferenceRegistry() const override {
- return _registry;
- }
+ std::shared_ptr<IDocumentDBReferenceRegistry> getDocumentDBReferenceRegistry() const override;
+ SessionManager & session_manager() override;
};
} // namespace proton