summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-01-23 17:26:21 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-01-23 17:26:21 +0000
commit2873056ee3aae2dbe673af93e93940800bf3a7b2 (patch)
tree2b3a1e84d51a35b529982ffec9699d663fb8b298
parentde8b11cfb307e1626fccd0156e8b71fe2baf0f2b (diff)
Wire in config control too.
-rw-r--r--searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_jobtest.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/config/proton.def3
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.cpp9
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.h5
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp3
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.cpp2
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<MyHandler>(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<LidSpaceCompactionJob>(
config.getLidSpaceCompactionConfig(),
*lidHandler, opStorer, fbHandler,