[x] Does this PR have a descriptive title that could go in our release notes?
[ ] Does this PR add any new dependencies?
[ ] Does this PR modify any existing APIs?
[ ] Is the change to the API backwards compatible?
[ ] Should this result in any changes to our documentation, either updating existing docs or adding new ones?
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.
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