diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-01-27 22:07:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-27 22:07:53 +0100 |
commit | 51950d38c8f2bfd7448288d60386d871ff6658bf (patch) | |
tree | c81c369a1c0739eae42a0a450b9bc0791a48b9a1 | |
parent | 4f13a7ac6538d36676387099958abb2f821d14f4 (diff) | |
parent | 30e8e0433efda7fa6bb723b3520e102c3c22e5d9 (diff) |
Merge pull request #16263 from vespa-engine/balder/ensure-the-top-is-compacted-too
Ensure all tasks are queued on the master executor so compaction will…
4 files changed, 9 insertions, 2 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_base.cpp b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_base.cpp index c108b936a72..bb6308977ca 100644 --- a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_base.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_base.cpp @@ -47,6 +47,7 @@ bool LidSpaceCompactionJobBase::scanDocumentsPost() { if (!_scanItr->valid()) { + sync(); if (shouldRestartScanDocuments(_handler->getLidStatus())) { _scanItr = _handler->getIterator(); } else { diff --git a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_base.h b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_base.h index 20cede10c8d..dc9ecff22cc 100644 --- a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_base.h +++ b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_base.h @@ -53,6 +53,7 @@ private: protected: search::DocumentMetaData getNextDocument(const search::LidUsageStats &stats, bool retryLastDocument); bool scanDocumentsPost(); + virtual void sync() { } public: LidSpaceCompactionJobBase(const DocumentDBLidSpaceCompactionConfig &config, std::shared_ptr<ILidSpaceCompactionHandler> handler, diff --git a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp index 037ede08e03..faeb5da1f38 100644 --- a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp @@ -86,8 +86,13 @@ CompactionJob::CompactionJob(const DocumentDBLidSpaceCompactionConfig &config, CompactionJob::~CompactionJob() = default; void -CompactionJob::onStop() { +CompactionJob::sync() { _bucketExecutor.sync(); } +void +CompactionJob::onStop() { + sync(); +} + } // namespace proton diff --git a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.h b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.h index b925b5ecd59..e5619720825 100644 --- a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.h +++ b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.h @@ -31,7 +31,7 @@ private: bool scanDocuments(const search::LidUsageStats &stats) override; void moveDocument(const search::DocumentMetaData & meta, std::shared_ptr<IDestructorCallback> onDone); void onStop() override; - + void sync() override; public: CompactionJob(const DocumentDBLidSpaceCompactionConfig &config, std::shared_ptr<ILidSpaceCompactionHandler> handler, |