-
Notifications
You must be signed in to change notification settings - Fork 25.2k
Avoid using direct I/O during vector merges #127406
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The vector file isn't reopened during merge operations, so relying on `IOContext` to disable direct I/O during merges is ineffective. This change updates the strategy to explicitly open the vector file twice when direct I/O is enabled: once for default reads and once for direct I/O. We then switch to the appropriate index input in `getMergeInstance`, following the same approach used by other formats.
Pinging @elastic/es-search-relevance (Team:Search Relevance) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Jim, LGTM
Ideally this wouldn't modify |
The vector file isn't reopened during merge operations, so relying on
IOContext
to disable direct I/O during merges is ineffective. This change updates the strategy to explicitly open the vector file twice when direct I/O is enabled: once for default reads and once for direct I/O. We then switch to the appropriate index input ingetMergeInstance
, following the same approach used by other formats.Direct I/O support for vectors is not yet released so marking this PR as non-issue for now.