diff options
author | Tor Egge <Tor.Egge@yahoo-inc.com> | 2017-01-09 14:23:32 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@yahoo-inc.com> | 2017-01-09 14:23:32 +0000 |
commit | 6ddda72b257f60acebfa2b6f021aa3159324c010 (patch) | |
tree | fdc47c7723f7e36c2720c5d5a8f607b7ace955f3 /searchcore/src/tests/proton/documentdb/lid_space_compaction | |
parent | f2a1c1653c3a33a257bf471e4426e834a4a6bff3 (diff) |
Add resource limit factor used by maintenance job to get a slightly higher
resource limit when determining if maintenance job can be run. This allows
for maintenance job to continue running even if feeding is blocked until
the adjusted limit is reached.
Diffstat (limited to 'searchcore/src/tests/proton/documentdb/lid_space_compaction')
-rw-r--r-- | searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp b/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp index b6b3db261cd..746a3066b2a 100644 --- a/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp +++ b/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp @@ -25,6 +25,7 @@ const double JOB_DELAY = 1.0; const uint32_t ALLOWED_LID_BLOAT = 1; const double ALLOWED_LID_BLOAT_FACTOR = 0.3; const uint32_t MAX_DOCS_TO_SCAN = 100; +constexpr double RESOURCE_LIMIT_FACTOR = 1.0; const vespalib::string DOC_ID = "id:test:searchdocument::0"; const BucketId BUCKET_ID_1(1); const BucketId BUCKET_ID_2(2); @@ -235,11 +236,12 @@ struct JobFixture MyJobRunner _jobRunner; JobFixture(uint32_t allowedLidBloat = ALLOWED_LID_BLOAT, double allowedLidBloatFactor = ALLOWED_LID_BLOAT_FACTOR, - uint32_t maxDocsToScan = MAX_DOCS_TO_SCAN) + uint32_t maxDocsToScan = MAX_DOCS_TO_SCAN, + double resourceLimitFactor = RESOURCE_LIMIT_FACTOR) : _handler(), _job(DocumentDBLidSpaceCompactionConfig(JOB_DELAY, allowedLidBloat, allowedLidBloatFactor, maxDocsToScan), - _handler, _storer, _frozenHandler, _diskMemUsageNotifier), + _handler, _storer, _frozenHandler, _diskMemUsageNotifier, resourceLimitFactor), _jobRunner(_job) { } @@ -514,6 +516,18 @@ TEST_F("require that ending resource starvation resumes lid space compaction", J TEST_DO(assertJobContext(2, 9, 1, 7, 1, f)); } +TEST_F("require that resource limit factor adjusts limit", JobFixture(ALLOWED_LID_BLOAT, ALLOWED_LID_BLOAT_FACTOR, MAX_DOCS_TO_SCAN, 1.05)) +{ + f.addStats(10, {1,3,4,5,6,9}, + {{9,2}, // 30% bloat: move 9 -> 2 + {6,7}}); // no documents to move + TEST_DO(f._diskMemUsageNotifier.update({{100, 0}, {100, 101}})); + EXPECT_FALSE(f.run()); // scan + TEST_DO(assertJobContext(2, 9, 1, 0, 0, f)); + TEST_DO(f.endScan().compact()); + TEST_DO(assertJobContext(2, 9, 1, 7, 1, f)); +} + TEST_MAIN() { TEST_RUN_ALL(); |