From 2873056ee3aae2dbe673af93e93940800bf3a7b2 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Sat, 23 Jan 2021 17:26:21 +0000 Subject: Wire in config control too. --- .../proton/documentdb/lid_space_compaction/lid_space_jobtest.cpp | 2 +- searchcore/src/vespa/searchcore/config/proton.def | 3 +++ .../searchcore/proton/server/document_db_maintenance_config.cpp | 9 ++++++--- .../searchcore/proton/server/document_db_maintenance_config.h | 5 ++++- .../vespa/searchcore/proton/server/documentdbconfigmanager.cpp | 3 ++- .../vespa/searchcore/proton/server/maintenance_jobs_injector.cpp | 2 +- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_jobtest.cpp b/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_jobtest.cpp index 8a5f03b4a63..af8086941fd 100644 --- a/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_jobtest.cpp +++ b/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_jobtest.cpp @@ -46,7 +46,7 @@ JobTestBase::init(uint32_t allowedLidBloat, { _handler = std::make_unique(maxOutstandingMoveOps != MAX_OUTSTANDING_MOVE_OPS, useBucketDB()); DocumentDBLidSpaceCompactionConfig compactCfg(interval, allowedLidBloat, allowedLidBloatFactor, - REMOVE_BATCH_BLOCK_RATE, REMOVE_BLOCK_RATE, false); + REMOVE_BATCH_BLOCK_RATE, REMOVE_BLOCK_RATE, false, useBucketDB()); BlockableMaintenanceJobConfig blockableCfg(resourceLimitFactor, maxOutstandingMoveOps); if (useBucketDB()) { diff --git a/searchcore/src/vespa/searchcore/config/proton.def b/searchcore/src/vespa/searchcore/config/proton.def index c12500570bc..17d0ef8ad37 100644 --- a/searchcore/src/vespa/searchcore/config/proton.def +++ b/searchcore/src/vespa/searchcore/config/proton.def @@ -394,6 +394,9 @@ lidspacecompaction.removebatchblockrate double default=0.5 ## It is considered again at the next regular interval (see above). lidspacecompaction.removeblockrate double default=100.0 +## Set to true to enable bucket locking via content layer +lidspacecompaction.usebucketexecutor bool default=false + ## This is the maximum value visibilitydelay you can have. ## A to higher value here will cost more memory while not improving too much. maxvisibilitydelay double default=1.0 diff --git a/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.cpp b/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.cpp index f365b6ae02d..2f41ca83a74 100644 --- a/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.cpp @@ -55,7 +55,8 @@ DocumentDBLidSpaceCompactionConfig::DocumentDBLidSpaceCompactionConfig() _allowedLidBloatFactor(1.0), _remove_batch_block_rate(0.5), _remove_block_rate(100), - _disabled(false) + _disabled(false), + _useBucketExecutor(false) { } @@ -64,14 +65,16 @@ DocumentDBLidSpaceCompactionConfig::DocumentDBLidSpaceCompactionConfig(vespalib: double allowedLidBloatFactor, double remove_batch_block_rate, double remove_block_rate, - bool disabled) + bool disabled, + bool useBucketExecutor) : _delay(std::min(MAX_DELAY_SEC, interval)), _interval(interval), _allowedLidBloat(allowedLidBloat), _allowedLidBloatFactor(allowedLidBloatFactor), _remove_batch_block_rate(remove_batch_block_rate), _remove_block_rate(remove_block_rate), - _disabled(disabled) + _disabled(disabled), + _useBucketExecutor(useBucketExecutor) { } diff --git a/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.h b/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.h index 731add1f62c..9bdb8fa0ae6 100644 --- a/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.h +++ b/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.h @@ -50,6 +50,7 @@ private: double _remove_batch_block_rate; double _remove_block_rate; bool _disabled; + bool _useBucketExecutor; public: DocumentDBLidSpaceCompactionConfig(); @@ -58,7 +59,8 @@ public: double allowwedLidBloatFactor, double remove_batch_block_rate, double remove_block_rate, - bool disabled); + bool disabled, + bool useBucketExecutor); static DocumentDBLidSpaceCompactionConfig createDisabled(); bool operator==(const DocumentDBLidSpaceCompactionConfig &rhs) const; @@ -69,6 +71,7 @@ public: double get_remove_batch_block_rate() const { return _remove_batch_block_rate; } double get_remove_block_rate() const { return _remove_block_rate; } bool isDisabled() const { return _disabled; } + bool useBucketExecutor() const { return _useBucketExecutor; } }; class BlockableMaintenanceJobConfig { diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp index c5587b33f6b..115a49fe997 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp @@ -142,7 +142,8 @@ buildMaintenanceConfig(const BootstrapConfig::SP &bootstrapConfig, proton.lidspacecompaction.allowedlidbloatfactor, proton.lidspacecompaction.removebatchblockrate, proton.lidspacecompaction.removeblockrate, - isDocumentTypeGlobal), + isDocumentTypeGlobal, + proton.lidspacecompaction.usebucketexecutor), AttributeUsageFilterConfig( proton.writefilter.attribute.enumstorelimit, proton.writefilter.attribute.multivaluelimit), diff --git a/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.cpp b/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.cpp index 3e19385a724..2f45b530092 100644 --- a/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.cpp @@ -39,7 +39,7 @@ injectLidSpaceCompactionJobs(MaintenanceController &controller, for (auto &lidHandler : lscHandlers) { IMaintenanceJob::UP job; - if (true) { + if (config.getLidSpaceCompactionConfig().useBucketExecutor()) { job = std::make_unique( config.getLidSpaceCompactionConfig(), *lidHandler, opStorer, fbHandler, -- cgit v1.2.3