diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-05-05 07:46:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-05 07:46:11 +0200 |
commit | 7282ec31be06d7a21014942c36993bb0b2481635 (patch) | |
tree | 83152b579d522c5a7f88102b2fa0dd6324942c3e /searchcore | |
parent | b56a9fd1cbbb9a67041affd6a1a155d7bab691ed (diff) | |
parent | a918906d708b26be193a46bfc4e5f7cb3fb9bb94 (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.h | 5 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/documentdb.cpp | 12 |
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 |