summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-05-05 07:46:11 +0200
committerGitHub <noreply@github.com>2022-05-05 07:46:11 +0200
commit7282ec31be06d7a21014942c36993bb0b2481635 (patch)
tree83152b579d522c5a7f88102b2fa0dd6324942c3e /searchcore
parentb56a9fd1cbbb9a67041affd6a1a155d7bab691ed (diff)
parenta918906d708b26be193a46bfc4e5f7cb3fb9bb94 (diff)
Merge pull request #22423 from vespa-engine/toregge/wait-for-load-done-before-getting-numdocs
Wait for load being completed before getting number of documents.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/ddbstate.h5
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentdb.cpp12
2 files changed, 15 insertions, 2 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/ddbstate.h b/searchcore/src/vespa/searchcore/proton/server/ddbstate.h
index be5f081ce52..5961ac4da62 100644
--- a/searchcore/src/vespa/searchcore/proton/server/ddbstate.h
+++ b/searchcore/src/vespa/searchcore/proton/server/ddbstate.h
@@ -94,6 +94,11 @@ public:
return getDelayedConfig(state);
}
+ bool get_load_done() const noexcept {
+ State state(getState());
+ return state >= State::REPLAY_TRANSACTION_LOG;
+ }
+
void clearDelayedConfig();
ConfigState getConfigState() const noexcept { return _configState.load(std::memory_order_relaxed); }
static vespalib::string getConfigStateString(ConfigState configState);
diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp
index e8c3ac885ea..66b4d293100 100644
--- a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp
@@ -612,13 +612,21 @@ DocumentDB::closeSubDBs()
size_t
DocumentDB::getNumDocs() const
{
- return _subDBs.getReadySubDB()->getNumDocs();
+ if (_state.get_load_done()) {
+ return _subDBs.getReadySubDB()->getNumDocs();
+ } else {
+ return 0u;
+ }
}
size_t
DocumentDB::getNumActiveDocs() const
{
- return _subDBs.getReadySubDB()->getNumActiveDocs();
+ if (_state.get_load_done()) {
+ return _subDBs.getReadySubDB()->getNumActiveDocs();
+ } else {
+ return 0u;
+ }
}
void