diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2021-02-05 10:48:25 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2021-02-05 10:48:25 +0100 |
commit | 4332bf8944e022a422413c5efe870dc68c76dba1 (patch) | |
tree | 062cfe9ad0b4a389021d100159aae618d633512b /searchlib | |
parent | 1691b77f23c5cceb9141403a79441d78c3de797d (diff) |
Only block for a short time when draining hold lists.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/attributevector.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/attributevector.cpp b/searchlib/src/vespa/searchlib/attribute/attributevector.cpp index d2574bd32a2..dffd12677df 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributevector.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attributevector.cpp @@ -774,7 +774,7 @@ void AttributeVector::drain_hold(uint64_t hold_limit) { incGeneration(); - for (int retry = 0; ; ++retry) { + for (int retry = 0; retry < 40; ++retry) { removeAllOldGenerations(); updateStat(true); if (_status.getOnHold() <= hold_limit) { @@ -788,11 +788,16 @@ void AttributeVector::update_config(const Config& cfg) { commit(true); - drain_hold(1024 * 1024); // Wait until 1MiB or less on hold + bool compaction_strategy_changed = (cfg.getCompactionStrategy() != _config.getCompactionStrategy()); + if (compaction_strategy_changed) { + drain_hold(1024 * 1024); // Wait until 1MiB or less on hold + } _config.setGrowStrategy(cfg.getGrowStrategy()); _config.setCompactionStrategy(cfg.getCompactionStrategy()); - commit(); // might trigger compaction if compaction strategy changed - drain_hold(1024 * 1024); // Wait until 1MiB or less on hold + if (compaction_strategy_changed) { + commit(); // might trigger compaction + drain_hold(1024 * 1024); // Wait until 1MiB or less on hold + } } template bool AttributeVector::append<StringChangeData>(ChangeVectorT< ChangeTemplate<StringChangeData> > &changes, uint32_t , const StringChangeData &, int32_t, bool); |