diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-11-01 14:52:02 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-11-01 14:52:02 +0000 |
commit | 7b44c957c74037ce3c5c49730ffcce16d1fba51b (patch) | |
tree | c5efc133632bb1b15e99ad64019aa529e719ab7d /searchcore | |
parent | 61fd13be221c635529e848535765e3e19ef285bc (diff) |
Move in same loop as move can now fail.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/documentbucketmover.cpp | 35 |
1 files changed, 3 insertions, 32 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/documentbucketmover.cpp b/searchcore/src/vespa/searchcore/proton/server/documentbucketmover.cpp index 1b3ce293752..3793d29bad8 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentbucketmover.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentbucketmover.cpp @@ -74,29 +74,6 @@ DocumentBucketMover::setupForBucket(const BucketId &bucket, _lastGidValid = false; } - -namespace -{ - -class MoveKey -{ -public: - DocumentIdT _lid; - document::GlobalId _gid; - Timestamp _timestamp; - - MoveKey(DocumentIdT lid, - const document::GlobalId &gid, - Timestamp timestamp) - : _lid(lid), - _gid(gid), - _timestamp(timestamp) - { - } -}; - -} - void DocumentBucketMover::setBucketDone() { _bucketDone = true; @@ -113,8 +90,6 @@ DocumentBucketMover::moveDocuments(size_t maxDocsToMove) const Iterator end = _source->meta_store()->upperBound(_bucket); size_t docsMoved = 0; size_t docsSkipped = 0; // In absence of a proper cost metric - typedef std::vector<MoveKey> MoveVec; - MoveVec toMove; for (; itr != end && docsMoved < maxDocsToMove; ++itr) { DocumentIdT lid = itr.getKey(); const RawDocumentMetaData &metaData = _source->meta_store()->getRawMetaData(lid); @@ -125,8 +100,9 @@ DocumentBucketMover::moveDocuments(size_t maxDocsToMove) docsSkipped = 0; } } else { - // moveDocument(lid, metaData.getTimestamp()); - toMove.push_back(MoveKey(lid, metaData.getGid(), metaData.getTimestamp())); + if ( ! moveDocument(lid, metaData.getGid(), metaData.getTimestamp())) { + return false; + } ++docsMoved; } _lastGid = metaData.getGid(); @@ -135,11 +111,6 @@ DocumentBucketMover::moveDocuments(size_t maxDocsToMove) if (itr == end) { setBucketDone(); } - for (const MoveKey & key : toMove) { - if ( ! moveDocument(key._lid, key._gid, key._timestamp)) { - return false; - } - } return true; } |