diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2020-10-30 13:09:31 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2020-10-30 13:45:13 +0100 |
commit | afa1008dccb909d2cea1de317498aaae7f00b90d (patch) | |
tree | b6e6915de80faafa2d030733a1d1d3b4c10aeeeb /searchcore/src/tests/proton/documentmetastore | |
parent | 9d6be5c8ca71327401ff5eecd7688675febfbcf4 (diff) |
Trim down LidReuseDelayer.
Diffstat (limited to 'searchcore/src/tests/proton/documentmetastore')
-rw-r--r-- | searchcore/src/tests/proton/documentmetastore/lidreusedelayer/lidreusedelayer_test.cpp | 69 |
1 files changed, 7 insertions, 62 deletions
diff --git a/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/lidreusedelayer_test.cpp b/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/lidreusedelayer_test.cpp index 453f7eb638e..6e4fe34a3c9 100644 --- a/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/lidreusedelayer_test.cpp +++ b/searchcore/src/tests/proton/documentmetastore/lidreusedelayer/lidreusedelayer_test.cpp @@ -128,7 +128,6 @@ class Fixture { public: using LidReuseDelayer = documentmetastore::LidReuseDelayer; - using LidReuseDelayerConfig = documentmetastore::LidReuseDelayerConfig; vespalib::ThreadStackExecutor _sharedExecutor; ExecutorThreadingService _writeServiceReal; test::ThreadingServiceObserver _writeService; @@ -140,7 +139,7 @@ public: _writeServiceReal(_sharedExecutor), _writeService(_writeServiceReal), _store(), - _lidReuseDelayer(std::make_unique<LidReuseDelayer>(_writeService, _store, LidReuseDelayerConfig())) + _lidReuseDelayer(std::make_unique<LidReuseDelayer>(_writeService, _store)) { } @@ -195,15 +194,6 @@ public: return res; } - void - configureLidReuseDelayer(bool immediateCommit, bool hasIndexedOrAttributeFields) { - runInMaster([&] () { - _lidReuseDelayer = std::make_unique<LidReuseDelayer>(_writeService, _store, - LidReuseDelayerConfig(immediateCommit ? vespalib::duration::zero() : 1ms, - hasIndexedOrAttributeFields)); - } ); - } - void commit() { runInMaster([&] () { cycleLids(_lidReuseDelayer->getReuseLids()); }); } @@ -230,88 +220,43 @@ public: TEST_F("require that nothing happens before free list is active", Fixture) { - f.configureLidReuseDelayer(true, true); EXPECT_FALSE(f.delayReuse(4)); EXPECT_FALSE(f.delayReuse({ 5, 6})); EXPECT_TRUE(f._store.assertWork(0, 0, 0)); - EXPECT_TRUE(assertThreadObserver(3, 0, 0, f._writeService)); -} - - -TEST_F("require that single lid is delayed", Fixture) -{ - f._store._freeListActive = true; - f.configureLidReuseDelayer(true, true); - EXPECT_TRUE(f.delayReuse(4)); - f.scheduleDelayReuseLid(4); - EXPECT_TRUE(f._store.assertWork(1, 0, 1)); - EXPECT_TRUE(assertThreadObserver(4, 1, 0, f._writeService)); -} - - -TEST_F("require that lid vector is delayed", Fixture) -{ - f._store._freeListActive = true; - f.configureLidReuseDelayer(true, true); - EXPECT_TRUE(f.delayReuse({ 5, 6, 7})); - f.scheduleDelayReuseLids({ 5, 6, 7}); - EXPECT_TRUE(f._store.assertWork(0, 1, 3)); - EXPECT_TRUE(assertThreadObserver(4, 1, 0, f._writeService)); + EXPECT_TRUE(assertThreadObserver(2, 0, 0, f._writeService)); } TEST_F("require that reuse can be batched", Fixture) { f._store._freeListActive = true; - f.configureLidReuseDelayer(false, true); EXPECT_FALSE(f.delayReuse(4)); EXPECT_FALSE(f.delayReuse({ 5, 6, 7})); EXPECT_TRUE(f._store.assertWork(0, 0, 0)); - EXPECT_TRUE(assertThreadObserver(3, 0, 0, f._writeService)); + EXPECT_TRUE(assertThreadObserver(2, 0, 0, f._writeService)); f.commit(); EXPECT_TRUE(f._store.assertWork(0, 1, 4)); - EXPECT_TRUE(assertThreadObserver(5, 1, 0, f._writeService)); + EXPECT_TRUE(assertThreadObserver(4, 1, 0, f._writeService)); EXPECT_FALSE(f.delayReuse(8)); EXPECT_FALSE(f.delayReuse({ 9, 10})); EXPECT_TRUE(f._store.assertWork(0, 1, 4)); - EXPECT_TRUE(assertThreadObserver(7, 1, 0, f._writeService)); + EXPECT_TRUE(assertThreadObserver(6, 1, 0, f._writeService)); } TEST_F("require that single element array is optimized", Fixture) { f._store._freeListActive = true; - f.configureLidReuseDelayer(false, true); EXPECT_FALSE(f.delayReuse({ 4})); EXPECT_TRUE(f._store.assertWork(0, 0, 0)); - EXPECT_TRUE(assertThreadObserver(2, 0, 0, f._writeService)); + EXPECT_TRUE(assertThreadObserver(1, 0, 0, f._writeService)); f.commit(); - f.configureLidReuseDelayer(true, true); EXPECT_TRUE(f._store.assertWork(1, 0, 1)); - EXPECT_TRUE(assertThreadObserver(5, 1, 0, f._writeService)); - EXPECT_TRUE(f.delayReuse({ 8})); - f.scheduleDelayReuseLids({ 8}); - EXPECT_TRUE(f._store.assertWork(2, 0, 2)); - EXPECT_TRUE(assertThreadObserver(8, 2, 0, f._writeService)); + EXPECT_TRUE(assertThreadObserver(3, 1, 0, f._writeService)); } - -TEST_F("require that lids are reused faster with no indexed fields", Fixture) -{ - f._store._freeListActive = true; - f.configureLidReuseDelayer(true, false); - EXPECT_FALSE(f.delayReuse(4)); - EXPECT_TRUE(f._store.assertWork(1, 0, 1)); - EXPECT_TRUE(assertThreadObserver(2, 0, 0, f._writeService)); - EXPECT_FALSE(f.delayReuse({ 5, 6, 7})); - EXPECT_TRUE(f._store.assertWork(1, 1, 4)); - EXPECT_TRUE(assertThreadObserver(3, 0, 0, f._writeService)); } -} - - - TEST_MAIN() { TEST_RUN_ALL(); |