diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-12-08 17:40:48 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-12-08 17:40:48 +0000 |
commit | 8e910e3977c4522f3c99764f79fa8f374271c224 (patch) | |
tree | ab5497dc3038345fcaaa262a6f3e4213f7e123df | |
parent | 11d358a64324317b3f63dae3be4cbe37f735473d (diff) |
Add SessionManager in IDocumentDBOwner, but only use in mocks in tests for now.
-rw-r--r-- | searchcore/src/apps/tests/persistenceconformance_test.cpp | 26 | ||||
-rw-r--r-- | searchcore/src/tests/proton/docsummary/docsummary.cpp | 58 | ||||
-rw-r--r-- | searchcore/src/tests/proton/documentdb/documentdb_test.cpp | 35 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/bmcluster/bm_node.cpp | 44 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/metrics/documentdb_tagged_metrics.cpp | 1 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/documentdb_metrics_updater.cpp | 2 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/idocumentdbowner.h | 3 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/proton.cpp | 6 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/proton.h | 1 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/test/CMakeLists.txt | 1 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/test/dummydbowner.cpp | 25 | ||||
-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 |