summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-01-27 22:07:53 +0100
committerGitHub <noreply@github.com>2021-01-27 22:07:53 +0100
commit51950d38c8f2bfd7448288d60386d871ff6658bf (patch)
treec81c369a1c0739eae42a0a450b9bc0791a48b9a1
parent4f13a7ac6538d36676387099958abb2f821d14f4 (diff)
parent30e8e0433efda7fa6bb723b3520e102c3c22e5d9 (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…
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_base.cpp1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_base.h1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp7
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.h2
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,