Fix the code hang while caching nodes if search is run with a single thread (#590)

* Fixing other places with the single search thread hang issue

* Fixing other places with the single search thread hang issue

* Adding overwrite option to delete old versions

* Add a run id to files to avoid naming conflicts

---------

Co-authored-by: Gopal Srinivasa <gopalsr@microsoft.com>
This commit is contained in:
gopalrs 2024-10-15 17:33:49 +05:30 коммит произвёл GitHub
Родитель bae427e918
Коммит 6f2691c726
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
2 изменённых файлов: 2 добавлений и 6 удалений

3
.github/workflows/build-python-pdoc.yml поставляемый
Просмотреть файл

@ -47,7 +47,8 @@ jobs:
with:
name: dependencies
path: |
dependencies_documentation.txt
${{ github.run_id }}-dependencies_documentation.txt
overwrite: true
- name: Archive documentation artifacts
uses: actions/upload-artifact@v4
with:

Просмотреть файл

@ -365,11 +365,6 @@ void PQFlashIndex<T, LabelT>::cache_bfs_levels(uint64_t num_nodes_to_cache, std:
}
diskann::cout << "Caching " << num_nodes_to_cache << "..." << std::endl;
// borrow thread data
ScratchStoreManager<SSDThreadData<T>> manager(this->_thread_data);
auto this_thread_data = manager.scratch_space();
IOContext &ctx = this_thread_data->ctx;
std::unique_ptr<tsl::robin_set<uint32_t>> cur_level, prev_level;
cur_level = std::make_unique<tsl::robin_set<uint32_t>>();
prev_level = std::make_unique<tsl::robin_set<uint32_t>>();