Fix disk index search deadlock when using 1 thread #556
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reference Issues/PRs
Fixes #462
What does this implement/fix? Briefly explain your changes.
Several steps during disk index search initialization read graph nodes into memory by "borrowing" search thread data to issue async IOs, and #417 wrapped this process into
read_nodes. However, the original call sites are not cleaned so the thread data are borrowed repetitively. With-T 1, there is only one thread data item, and initialization will therefore deadlock on waiting for available thread data.Fix this by removing unneeded thread data borrowing.
Any other comments?
N/A