diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-05-05 16:45:22 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-05-09 21:21:18 +0000 |
commit | 80fe3c5523f5e5699c288a4301ac6d04d77bf665 (patch) | |
tree | 5693aa2f8738b078bbd7bc9f770d6c0a652eb013 /searchcore | |
parent | 82f6ea0f659f75171992a53b3608705e1a7c2234 (diff) |
GC legacy prune removed job.
Diffstat (limited to 'searchcore')
11 files changed, 29 insertions, 251 deletions
diff --git a/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_jobtest.cpp b/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_jobtest.cpp index a177f3f763e..ef54aafcec2 100644 --- a/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_jobtest.cpp +++ b/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_jobtest.cpp @@ -47,7 +47,7 @@ JobTestBase::init(uint32_t allowedLidBloat, { _handler = std::make_shared<MyHandler>(maxOutstandingMoveOps != MAX_OUTSTANDING_MOVE_OPS, true); DocumentDBLidSpaceCompactionConfig compactCfg(interval, allowedLidBloat, allowedLidBloatFactor, - REMOVE_BATCH_BLOCK_RATE, REMOVE_BLOCK_RATE, false, true); + REMOVE_BATCH_BLOCK_RATE, REMOVE_BLOCK_RATE, false); BlockableMaintenanceJobConfig blockableCfg(resourceLimitFactor, maxOutstandingMoveOps); _job.reset(); diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp index e73fa739fbb..deaeec07db7 100644 --- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp +++ b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp @@ -842,7 +842,7 @@ void MaintenanceControllerFixture::injectMaintenanceJobs() { if (_injectDefaultJobs) { - MaintenanceJobsInjector::injectJobs(_mc, *_mcCfg, _bucketExecutor, _fh, _gsp, _fh, _mc, + MaintenanceJobsInjector::injectJobs(_mc, *_mcCfg, _bucketExecutor, _fh, _gsp, _fh, _bucketCreateNotifier, makeBucketSpace(), _fh, _fh, _bmc, _clusterStateHandler, _bucketHandler, _calc, _diskMemUsageNotifier, _jobTrackers, _readyAttributeManager, _notReadyAttributeManager, @@ -940,52 +940,7 @@ TEST_F("require that document pruner is active", MaintenanceControllerFixture) ASSERT_TRUE(f._executor.waitIdle(TIMEOUT)); EXPECT_EQUAL(10u, f._removed.getNumUsedLids()); EXPECT_EQUAL(10u, f._removed.getDocumentCount()); - MyFrozenBucket::UP frozen3(new MyFrozenBucket(f._mc, bucketId3)); - f.setPruneConfig(DocumentDBPruneConfig(200ms, 900s, false)); - for (uint32_t i = 0; i < 6; ++i) { - std::this_thread::sleep_for(100ms); - ASSERT_TRUE(f._executor.waitIdle(TIMEOUT)); - if (f._removed.getNumUsedLids() != 10u) - break; - } - EXPECT_EQUAL(10u, f._removed.getNumUsedLids()); - EXPECT_EQUAL(10u, f._removed.getDocumentCount()); - frozen3.reset(); - for (uint32_t i = 0; i < 600; ++i) { - std::this_thread::sleep_for(100ms); - ASSERT_TRUE(f._executor.waitIdle(TIMEOUT)); - if (f._removed.getNumUsedLids() != 10u) - break; - } - EXPECT_EQUAL(5u, f._removed.getNumUsedLids()); - EXPECT_EQUAL(5u, f._removed.getDocumentCount()); -} - -TEST_F("require that document pruner v2 is active", MaintenanceControllerFixture) -{ - uint64_t tshz = 1000000; - uint64_t now = static_cast<uint64_t>(time(nullptr)) * tshz; - Timestamp remTime(static_cast<Timestamp::Type>(now - 3600 * tshz)); - Timestamp keepTime(static_cast<Timestamp::Type>(now + 3600 * tshz)); - f._builder.createDocs(1, 1, 4); // 3 docs - f._builder.createDocs(2, 4, 6); // 2 docs - test::UserDocuments keepDocs(f._builder.getDocs()); - f.removeDocs(keepDocs, keepTime); - f._builder.clearDocs(); - f._builder.createDocs(3, 6, 8); // 2 docs - f._builder.createDocs(4, 8, 11); // 3 docs - test::UserDocuments removeDocs(f._builder.getDocs()); - BucketId bucketId3(removeDocs.getBucket(3)); - f.removeDocs(removeDocs, remTime); - f.notifyClusterStateChanged(); - EXPECT_TRUE(f._executor.isIdle()); - EXPECT_EQUAL(10u, f._removed.getNumUsedLids()); - EXPECT_EQUAL(10u, f._removed.getDocumentCount()); - f.startMaintenance(); - ASSERT_TRUE(f._executor.waitIdle(TIMEOUT)); - EXPECT_EQUAL(10u, f._removed.getNumUsedLids()); - EXPECT_EQUAL(10u, f._removed.getDocumentCount()); - f.setPruneConfig(DocumentDBPruneConfig(200ms, 900s, true)); + f.setPruneConfig(DocumentDBPruneConfig(200ms, 900s)); for (uint32_t i = 0; i < 600; ++i) { std::this_thread::sleep_for(100ms); ASSERT_TRUE(f._executor.waitIdle(TIMEOUT)); @@ -1213,7 +1168,7 @@ TEST_F("require that maintenance jobs are run by correct executor", MaintenanceC void assertPruneRemovedDocumentsConfig(vespalib::duration expDelay, vespalib::duration expInterval, vespalib::duration interval, MaintenanceControllerFixture &f) { - f.setPruneConfig(DocumentDBPruneConfig(interval, 1000s, true)); + f.setPruneConfig(DocumentDBPruneConfig(interval, 1000s)); const auto *job = findJob(f._mc.getJobList(), "prune_removed_documents.searchdocument"); EXPECT_EQUAL(expDelay, job->getJob().getDelay()); EXPECT_EQUAL(expInterval, job->getJob().getInterval()); diff --git a/searchcore/src/vespa/searchcore/proton/server/CMakeLists.txt b/searchcore/src/vespa/searchcore/proton/server/CMakeLists.txt index 7d4d6868d21..73b9c17398a 100644 --- a/searchcore/src/vespa/searchcore/proton/server/CMakeLists.txt +++ b/searchcore/src/vespa/searchcore/proton/server/CMakeLists.txt @@ -80,7 +80,6 @@ vespa_add_library(searchcore_server STATIC proton_disk_layout.cpp proton_thread_pools_explorer.cpp prune_session_cache_job.cpp - pruneremoveddocumentsjob.cpp pruneremoveddocumentsjob_v2.cpp putdonecontext.cpp reconfig_params.cpp diff --git a/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.cpp b/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.cpp index 10979ebc6e2..3bcd9f3d85f 100644 --- a/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.cpp @@ -7,16 +7,15 @@ namespace proton { constexpr vespalib::duration MAX_DELAY_SEC = 300s; DocumentDBPruneConfig::DocumentDBPruneConfig() noexcept - : DocumentDBPruneConfig(21600s, 1209600s, false) + : DocumentDBPruneConfig(21600s, 1209600s) { } DocumentDBPruneConfig:: -DocumentDBPruneConfig(vespalib::duration interval, vespalib::duration age, bool useBucketExecutor) noexcept +DocumentDBPruneConfig(vespalib::duration interval, vespalib::duration age) noexcept : _delay(std::min(MAX_DELAY_SEC, interval)), _interval(interval), - _age(age), - _useBucketExecutor(useBucketExecutor) + _age(age) { } @@ -25,8 +24,7 @@ DocumentDBPruneConfig::operator==(const DocumentDBPruneConfig &rhs) const noexce { return (_delay == rhs._delay) && (_interval == rhs._interval) && - (_age == rhs._age) && - (_useBucketExecutor == rhs._useBucketExecutor); + (_age == rhs._age); } DocumentDBHeartBeatConfig::DocumentDBHeartBeatConfig() noexcept @@ -52,8 +50,7 @@ DocumentDBLidSpaceCompactionConfig::DocumentDBLidSpaceCompactionConfig() noexcep _allowedLidBloatFactor(1.0), _remove_batch_block_rate(0.5), _remove_block_rate(100), - _disabled(false), - _useBucketExecutor(false) + _disabled(false) { } @@ -62,16 +59,14 @@ DocumentDBLidSpaceCompactionConfig::DocumentDBLidSpaceCompactionConfig(vespalib: double allowedLidBloatFactor, double remove_batch_block_rate, double remove_block_rate, - bool disabled, - bool useBucketExecutor) noexcept + bool disabled) noexcept : _delay(std::min(MAX_DELAY_SEC, interval)), _interval(interval), _allowedLidBloat(allowedLidBloat), _allowedLidBloatFactor(allowedLidBloatFactor), _remove_batch_block_rate(remove_batch_block_rate), _remove_block_rate(remove_block_rate), - _disabled(disabled), - _useBucketExecutor(useBucketExecutor) + _disabled(disabled) { } @@ -113,19 +108,16 @@ BlockableMaintenanceJobConfig::operator==(const BlockableMaintenanceJobConfig &r } BucketMoveConfig::BucketMoveConfig() noexcept - : _maxDocsToMovePerBucket(1), - _useBucketExecutor(false) + : _maxDocsToMovePerBucket(1) {} -BucketMoveConfig::BucketMoveConfig(uint32_t maxDocsToMovePerBucket, bool useBucketExecutor_) noexcept - : _maxDocsToMovePerBucket(maxDocsToMovePerBucket), - _useBucketExecutor(useBucketExecutor_) +BucketMoveConfig::BucketMoveConfig(uint32_t maxDocsToMovePerBucket) noexcept + : _maxDocsToMovePerBucket(maxDocsToMovePerBucket) {} bool BucketMoveConfig::operator==(const BucketMoveConfig &rhs) const noexcept { - return _maxDocsToMovePerBucket == rhs._maxDocsToMovePerBucket && - _useBucketExecutor == rhs._useBucketExecutor; + return _maxDocsToMovePerBucket == rhs._maxDocsToMovePerBucket; } DocumentDBMaintenanceConfig::DocumentDBMaintenanceConfig() noexcept diff --git a/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.h b/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.h index ed6494c117d..a42bf65ce88 100644 --- a/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.h +++ b/searchcore/src/vespa/searchcore/proton/server/document_db_maintenance_config.h @@ -15,17 +15,15 @@ private: vespalib::duration _delay; vespalib::duration _interval; vespalib::duration _age; - bool _useBucketExecutor; public: DocumentDBPruneConfig() noexcept; - DocumentDBPruneConfig(vespalib::duration interval, vespalib::duration age, bool useBucketExecutor) noexcept; + DocumentDBPruneConfig(vespalib::duration interval, vespalib::duration age) noexcept; bool operator==(const DocumentDBPruneConfig &rhs) const noexcept; vespalib::duration getDelay() const noexcept { return _delay; } vespalib::duration getInterval() const noexcept { return _interval; } vespalib::duration getAge() const noexcept { return _age; } - bool useBucketExecutor() const noexcept { return _useBucketExecutor; } }; using DocumentDBPruneRemovedDocumentsConfig = DocumentDBPruneConfig; @@ -53,7 +51,6 @@ private: double _remove_batch_block_rate; double _remove_block_rate; bool _disabled; - bool _useBucketExecutor; public: DocumentDBLidSpaceCompactionConfig() noexcept; @@ -62,8 +59,7 @@ public: double allowwedLidBloatFactor, double remove_batch_block_rate, double remove_block_rate, - bool disabled, - bool useBucketExecutor) noexcept; + bool disabled) noexcept; static DocumentDBLidSpaceCompactionConfig createDisabled() noexcept; bool operator==(const DocumentDBLidSpaceCompactionConfig &rhs) const noexcept; @@ -74,7 +70,6 @@ public: double get_remove_batch_block_rate() const noexcept { return _remove_batch_block_rate; } double get_remove_block_rate() const noexcept { return _remove_block_rate; } bool isDisabled() const noexcept { return _disabled; } - bool useBucketExecutor() const noexcept { return _useBucketExecutor; } }; class BlockableMaintenanceJobConfig { @@ -94,13 +89,11 @@ public: class BucketMoveConfig { public: BucketMoveConfig() noexcept; - BucketMoveConfig(uint32_t _maxDocsToMovePerBucket, bool useBucketExecutor) noexcept; + BucketMoveConfig(uint32_t _maxDocsToMovePerBucket) noexcept; bool operator==(const BucketMoveConfig &rhs) const noexcept; uint32_t getMaxDocsToMovePerBucket() const noexcept { return _maxDocsToMovePerBucket; } - bool useBucketExecutor() const noexcept { return _useBucketExecutor; } private: uint32_t _maxDocsToMovePerBucket; - bool _useBucketExecutor; }; class DocumentDBMaintenanceConfig diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp index 3f3fad55bd6..3b4bf320b70 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp @@ -952,7 +952,6 @@ DocumentDB::injectMaintenanceJobs(const DocumentDBMaintenanceConfig &config, std *_feedHandler, // IHeartBeatHandler *_sessionManager, // ISessionCachePruner *_feedHandler, // IOperationStorer - _maintenanceController, // IFrozenBucketHandler _subDBs.getBucketCreateNotifier(), _bucketSpace, *_feedHandler, // IPruneRemovedDocumentsHandler diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp index feab911441a..8d513fde62f 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentdbconfigmanager.cpp @@ -133,8 +133,7 @@ buildMaintenanceConfig(const BootstrapConfig::SP &bootstrapConfig, } return std::make_shared<DocumentDBMaintenanceConfig>( DocumentDBPruneConfig(pruneRemovedDocumentsInterval, - pruneRemovedDocumentsAge, - proton.pruneremoveddocuments.usebucketexecutor), + pruneRemovedDocumentsAge), DocumentDBHeartBeatConfig(), vespalib::from_s(proton.grouping.sessionmanager.pruning.interval), visibilityDelay, @@ -144,8 +143,7 @@ buildMaintenanceConfig(const BootstrapConfig::SP &bootstrapConfig, proton.lidspacecompaction.allowedlidbloatfactor, proton.lidspacecompaction.removebatchblockrate, proton.lidspacecompaction.removeblockrate, - isDocumentTypeGlobal, - proton.lidspacecompaction.usebucketexecutor), + isDocumentTypeGlobal), AttributeUsageFilterConfig( proton.writefilter.attribute.enumstorelimit, proton.writefilter.attribute.multivaluelimit), @@ -154,7 +152,7 @@ buildMaintenanceConfig(const BootstrapConfig::SP &bootstrapConfig, proton.maintenancejobs.resourcelimitfactor, proton.maintenancejobs.maxoutstandingmoveops), DocumentDBFlushConfig(proton.index.maxflushed,proton.index.maxflushedretired), - BucketMoveConfig(proton.bucketmove.maxdocstomoveperbucket, proton.bucketmove.usebucketexecutor)); + BucketMoveConfig(proton.bucketmove.maxdocstomoveperbucket)); } template<typename T> 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 e713335be4b..6bc1907f367 100644 --- a/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.cpp @@ -7,7 +7,6 @@ #include "lid_space_compaction_handler.h" #include "maintenance_jobs_injector.h" #include "prune_session_cache_job.h" -#include "pruneremoveddocumentsjob.h" #include "pruneremoveddocumentsjob_v2.h" #include "sample_attribute_usage_job.h" #include <vespa/searchcore/proton/attribute/attribute_config_inspector.h> @@ -76,7 +75,6 @@ MaintenanceJobsInjector::injectJobs(MaintenanceController &controller, IHeartBeatHandler &hbHandler, matching::ISessionCachePruner &scPruner, IOperationStorer &opStorer, - IFrozenBucketHandler &fbHandler, bucketdb::IBucketCreateNotifier &bucketCreateNotifier, document::BucketSpace bucketSpace, IPruneRemovedDocumentsHandler &prdHandler, @@ -98,20 +96,14 @@ MaintenanceJobsInjector::injectJobs(MaintenanceController &controller, const auto & docTypeName = controller.getDocTypeName().getName(); const MaintenanceDocumentSubDB &mRemSubDB(controller.getRemSubDB()); - if (config.getPruneRemovedDocumentsConfig().useBucketExecutor()) { - controller.registerJobInMasterThread( - trackJob(jobTrackers.getRemovedDocumentsPrune(), - PruneRemovedDocumentsJobV2::create(config.getPruneRemovedDocumentsConfig(), controller.retainDB(), - *mRemSubDB.meta_store(), mRemSubDB.sub_db_id(), bucketSpace, - docTypeName, prdHandler, controller.masterThread(), - bucketExecutor))); - } else { - controller.registerJobInMasterThread( - trackJob(jobTrackers.getRemovedDocumentsPrune(), - std::make_unique<PruneRemovedDocumentsJob>(config.getPruneRemovedDocumentsConfig(), - *mRemSubDB.meta_store(), mRemSubDB.sub_db_id(), - docTypeName, prdHandler, fbHandler))); - } + + controller.registerJobInMasterThread( + trackJob(jobTrackers.getRemovedDocumentsPrune(), + PruneRemovedDocumentsJobV2::create(config.getPruneRemovedDocumentsConfig(), controller.retainDB(), + *mRemSubDB.meta_store(), mRemSubDB.sub_db_id(), bucketSpace, + docTypeName, prdHandler, controller.masterThread(), + bucketExecutor))); + if (!config.getLidSpaceCompactionConfig().isDisabled()) { ILidSpaceCompactionHandler::Vector lidSpaceCompactionHandlers; 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 fb7117d2e66..cbc85613e1e 100644 --- a/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.h +++ b/searchcore/src/vespa/searchcore/proton/server/maintenance_jobs_injector.h @@ -38,7 +38,6 @@ struct MaintenanceJobsInjector IHeartBeatHandler &hbHandler, matching::ISessionCachePruner &scPruner, IOperationStorer &opStorer, - IFrozenBucketHandler &fbHandler, bucketdb::IBucketCreateNotifier &bucketCreateNotifier, document::BucketSpace bucketSpace, IPruneRemovedDocumentsHandler &prdHandler, diff --git a/searchcore/src/vespa/searchcore/proton/server/pruneremoveddocumentsjob.cpp b/searchcore/src/vespa/searchcore/proton/server/pruneremoveddocumentsjob.cpp deleted file mode 100644 index d8c4b6d1f71..00000000000 --- a/searchcore/src/vespa/searchcore/proton/server/pruneremoveddocumentsjob.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#include "pruneremoveddocumentsjob.h" -#include "ipruneremoveddocumentshandler.h" -#include "ifrozenbuckethandler.h" -#include <vespa/searchcore/proton/feedoperation/pruneremoveddocumentsoperation.h> -#include <vespa/searchcore/proton/documentmetastore/i_document_meta_store.h> -#include <vespa/vespalib/util/time.h> - -#include <vespa/log/log.h> -LOG_SETUP(".proton.server.pruneremoveddocumentsjob"); - -using document::BucketId; -using storage::spi::Timestamp; - -namespace proton { - -PruneRemovedDocumentsJob:: -PruneRemovedDocumentsJob(const DocumentDBPruneConfig &config, - const IDocumentMetaStore &metaStore, - uint32_t subDbId, - const vespalib::string &docTypeName, - IPruneRemovedDocumentsHandler &handler, - IFrozenBucketHandler &frozenHandler) - : BlockableMaintenanceJob("prune_removed_documents." + docTypeName, - config.getDelay(), config.getInterval()), - _metaStore(metaStore), - _subDbId(subDbId), - _cfgAgeLimit(config.getAge()), - _docTypeName(docTypeName), - _handler(handler), - _frozenHandler(frozenHandler), - _pruneLids(), - _nextLid(1u) -{ -} - - -void -PruneRemovedDocumentsJob::flush(DocId lowLid, DocId nextLowLid, const Timestamp ageLimit) -{ - if (_pruneLids.empty()) - return; - DocId docIdLimit = _metaStore.getCommittedDocIdLimit(); - PruneRemovedDocumentsOperation pruneOp(docIdLimit, _subDbId); - LidVectorContext::SP lvCtx(pruneOp.getLidsToRemove()); - for (DocId docId : _pruneLids) { - lvCtx->addLid(docId); - } - _pruneLids.clear(); - LOG(debug, - "PruneRemovedDocumentsJob::flush called," - " doctype(%s)" - " %u lids to prune," - " range [%u..%u) limit %u, timestamp %" PRIu64, - _docTypeName.c_str(), - static_cast<uint32_t>(pruneOp.getLidsToRemove()->getNumLids()), - lowLid, nextLowLid, docIdLimit, - static_cast<uint64_t>(ageLimit)); - _handler.performPruneRemovedDocuments(pruneOp); -} - - -bool -PruneRemovedDocumentsJob::run() -{ - vespalib::system_time now = vespalib::system_clock::now(); - const Timestamp ageLimit(static_cast<Timestamp::Type> - (vespalib::count_us(now.time_since_epoch() - _cfgAgeLimit))); - DocId lid(_nextLid); - const DocId olid(lid); - const DocId docIdLimit(_metaStore.getCommittedDocIdLimit()); - for (uint32_t pass = 0; pass < 10 && lid < docIdLimit; ++pass) { - const DocId lidLimit = std::min(lid + 10000u, docIdLimit); - for (; lid < lidLimit; ++lid) { - if (!_metaStore.validLid(lid)) - continue; - const RawDocumentMetaData &metaData = _metaStore.getRawMetaData(lid); - if (metaData.getTimestamp() >= ageLimit) - continue; - BucketId bucket(metaData.getBucketId()); - IFrozenBucketHandler::ExclusiveBucketGuard::UP bucketGuard = _frozenHandler.acquireExclusiveBucket(bucket); - if ( ! bucketGuard ) { - setBlocked(BlockedReason::FROZEN_BUCKET); - _nextLid = lid; - flush(olid, lid, ageLimit); - return true; - } - _pruneLids.push_back(lid); - } - if (_pruneLids.size() >= 500) - break; - } - _nextLid = lid; - flush(olid, lid, ageLimit); - if (lid >= docIdLimit) { - _nextLid = 1u; - return true; - } - return false; -} - -} // namespace proton diff --git a/searchcore/src/vespa/searchcore/proton/server/pruneremoveddocumentsjob.h b/searchcore/src/vespa/searchcore/proton/server/pruneremoveddocumentsjob.h deleted file mode 100644 index 0f756317ab4..00000000000 --- a/searchcore/src/vespa/searchcore/proton/server/pruneremoveddocumentsjob.h +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#pragma once - -#include "blockable_maintenance_job.h" -#include "document_db_maintenance_config.h" -#include <persistence/spi/types.h> - -namespace proton { - -struct IDocumentMetaStore; -class IPruneRemovedDocumentsHandler; -class IFrozenBucketHandler; - -/** - * Job that regularly checks whether old removed documents should be - * forgotten. - */ -class PruneRemovedDocumentsJob : public BlockableMaintenanceJob -{ -private: - const IDocumentMetaStore &_metaStore; // external ownership - uint32_t _subDbId; - vespalib::duration _cfgAgeLimit; - const vespalib::string &_docTypeName; - IPruneRemovedDocumentsHandler &_handler; - IFrozenBucketHandler &_frozenHandler; - - typedef uint32_t DocId; - std::vector<DocId> _pruneLids; - DocId _nextLid; - - void flush(DocId lowLid, DocId nextLowLid, const storage::spi::Timestamp ageLimit); -public: - PruneRemovedDocumentsJob(const DocumentDBPruneConfig &config, - const IDocumentMetaStore &metaStore, - uint32_t subDbId, - const vespalib::string &docTypeName, - IPruneRemovedDocumentsHandler &handler, - IFrozenBucketHandler &frozenHandler); - - // Implements IMaintenanceJob - bool run() override; -}; - -} // namespace proton - |