summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-04-23 13:23:15 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-04-23 13:23:15 +0000
commitf38cae1a8ae9c37d17c4bcdc485df629cf00e658 (patch)
tree83b6ef7cee55fc2fe2f854f864f6531eb1410f41 /searchcore
parent75880a3716c3c34951811f0d8515cda4c6a2bf23 (diff)
Stop maintenance jobs prior to draining references. Also remove a redundant docTypeName parameter.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentdb.cpp5
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.h1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.h1
5 files changed, 5 insertions, 6 deletions
diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
index b5e2e9d0b01..7b225571227 100644
--- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
@@ -847,7 +847,7 @@ MaintenanceControllerFixture::injectMaintenanceJobs()
{
if (_injectDefaultJobs) {
MaintenanceJobsInjector::injectJobs(_mc, *_mcCfg, _bucketExecutor, _fh, _gsp, _fh, _mc,
- _bucketCreateNotifier, _docTypeName.getName(), makeBucketSpace(), _fh, _fh,
+ _bucketCreateNotifier, makeBucketSpace(), _fh, _fh,
_bmc, _clusterStateHandler, _bucketHandler, _calc, _diskMemUsageNotifier,
_jobTrackers, _readyAttributeManager, _notReadyAttributeManager,
std::make_unique<const AttributeConfigInspector>(AttributesConfigBuilder()),
diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp
index 6897a182862..549981330ef 100644
--- a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp
@@ -571,14 +571,14 @@ DocumentDB::close()
_state.enterShutdownState();
_configCV.notify_all();
}
+ // Abort any ongoing maintenance
+ stopMaintenance();
_writeService.master().sync(); // Complete all tasks that didn't observe shutdown
masterExecute([this]() { tearDownReferences(); });
_writeService.master().sync();
// Wait until inflight feed operations to this document db has left.
// Caller should have removed document DB from feed router.
_refCount.waitForZeroRefCount();
- // Abort any ongoing maintenance
- stopMaintenance();
_writeService.sync();
@@ -959,7 +959,6 @@ DocumentDB::injectMaintenanceJobs(const DocumentDBMaintenanceConfig &config, std
*_feedHandler, // IOperationStorer
_maintenanceController, // IFrozenBucketHandler
_subDBs.getBucketCreateNotifier(),
- _docTypeName.getName(),
_bucketSpace,
*_feedHandler, // IPruneRemovedDocumentsHandler
*_feedHandler, // IDocumentMoveHandler
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 a6f408a984c..5b7824e4cc1 100644
--- a/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.cpp
@@ -108,7 +108,6 @@ MaintenanceJobsInjector::injectJobs(MaintenanceController &controller,
IOperationStorer &opStorer,
IFrozenBucketHandler &fbHandler,
bucketdb::IBucketCreateNotifier &bucketCreateNotifier,
- const vespalib::string &docTypeName,
document::BucketSpace bucketSpace,
IPruneRemovedDocumentsHandler &prdHandler,
IDocumentMoveHandler &moveHandler,
@@ -127,6 +126,7 @@ MaintenanceJobsInjector::injectJobs(MaintenanceController &controller,
controller.registerJobInMasterThread(std::make_unique<HeartBeatJob>(hbHandler, config.getHeartBeatConfig()));
controller.registerJobInDefaultPool(std::make_unique<PruneSessionCacheJob>(scPruner, config.getSessionCachePruneInterval()));
+ const auto & docTypeName = controller.getDocTypeName().getName();
const MaintenanceDocumentSubDB &mRemSubDB(controller.getRemSubDB());
auto pruneRDjob = std::make_unique<PruneRemovedDocumentsJob>(config.getPruneRemovedDocumentsConfig(), *mRemSubDB.meta_store(),
mRemSubDB.sub_db_id(), docTypeName, prdHandler, fbHandler);
diff --git a/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.h b/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.h
index 563ef227fcf..fb7117d2e66 100644
--- a/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.h
+++ b/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.h
@@ -40,7 +40,6 @@ struct MaintenanceJobsInjector
IOperationStorer &opStorer,
IFrozenBucketHandler &fbHandler,
bucketdb::IBucketCreateNotifier &bucketCreateNotifier,
- const vespalib::string &docTypeName,
document::BucketSpace bucketSpace,
IPruneRemovedDocumentsHandler &prdHandler,
IDocumentMoveHandler &moveHandler,
diff --git a/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.h b/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.h
index 4ab6cd6f3dc..0e080cf6445 100644
--- a/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.h
+++ b/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.h
@@ -72,6 +72,7 @@ public:
const MaintenanceDocumentSubDB & getRemSubDB() const { return _remSubDB; }
const MaintenanceDocumentSubDB & getNotReadySubDB() const { return _notReadySubDB; }
IThreadService & masterThread() { return _masterThread; }
+ const DocTypeName & getDocTypeName() const { return _docTypeName; }
private:
using Mutex = std::mutex;
using Guard = std::lock_guard<Mutex>;