aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-05-11 13:22:52 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-05-11 17:49:38 +0000
commit98d7c8f1c1bd36200db961c0b848a820014ab61f (patch)
treefd58c846e8796025b5eda6a3317fd87df434d70f /searchcore
parentd4b7118d3632acdd9ca6518b3bfcb4dec5caefee (diff)
Account and limit number of lids per file to reduce spkies during compaction.
This is to avoid ending up with a very long listof lids that are removed but not compacted away due to lidspace compaction being disabled when removes and delets are too frequent.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/vespa/searchcore/config/proton.def3
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp1
2 files changed, 4 insertions, 0 deletions
diff --git a/searchcore/src/vespa/searchcore/config/proton.def b/searchcore/src/vespa/searchcore/config/proton.def
index a210698d5b6..111ee7d1272 100644
--- a/searchcore/src/vespa/searchcore/config/proton.def
+++ b/searchcore/src/vespa/searchcore/config/proton.def
@@ -250,6 +250,9 @@ summary.log.chunk.skipcrconread bool default=false
## Max size per summary file.
summary.log.maxfilesize long default=1000000000
+## Max number of lid entries per file
+summary.log.maxnumlids int default=40000000
+
## Max disk bloat factor. This will trigger compacting.
summary.log.maxdiskbloatfactor double default=0.1
diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp
index d1d88434bd6..68e65acb87d 100644
--- a/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp
@@ -192,6 +192,7 @@ deriveConfig(const ProtonConfig::Summary & summary, const ProtonConfig::Flush::M
WriteableFileChunk::Config fileConfig(deriveCompression(chunk.compression), chunk.maxbytes);
LogDataStore::Config logConfig;
logConfig.setMaxFileSize(log.maxfilesize)
+ .setMaxNumLids(log.maxnumlids)
.setMaxDiskBloatFactor(std::min(flush.diskbloatfactor, flush.each.diskbloatfactor))
.setMaxBucketSpread(log.maxbucketspread).setMinFileSizeFactor(log.minfilesizefactor)
.compactCompression(deriveCompression(log.compact.compression))