diff options
Diffstat (limited to 'searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp')
-rw-r--r-- | searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp b/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp index d58d0ab4ad6..74848e93411 100644 --- a/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp +++ b/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp @@ -1183,15 +1183,17 @@ IndexMaintainer::putDocument(uint32_t lid, const Document &doc, SerialNum serial } void -IndexMaintainer::removeDocument(uint32_t lid, SerialNum serialNum) +IndexMaintainer::removeDocuments(LidVector lids, SerialNum serialNum) { assert(_ctx.getThreadingService().index().isCurrentThread()); LockGuard lock(_index_update_lock); - _current_index->removeDocument(lid); - _selector->setSource(lid, _current_index_id); - _source_list->setSource(lid); - ++_source_selector_changes; + for (uint32_t lid : lids) { + _selector->setSource(lid, _current_index_id); + _source_list->setSource(lid); + } + _source_selector_changes += lids.size(); _current_serial_num = serialNum; + _current_index->removeDocuments(std::move(lids)); } void |