-
Notifications
You must be signed in to change notification settings - Fork 143
Merge support for tiered index #1155
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
|
|
||
| auto merge(raft::resources const& res, | ||
| const std::vector<tiered_index::index<cagra::index<float, uint32_t>>*>& indices) | ||
| -> tiered_index::index<cagra::index<float, uint32_t>> |
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.
I think ideally we would have merge() return index and, as you have done, use the PIMPL idom to allow the return of either the same index type that was input, or a composite_index.
| * @note: When device memory is sufficient, the dataset attached to the returned index is allocated | ||
| * in device memory by default; otherwise, host memory is used automatically. | ||
| * | ||
| * @note: This API only supports physical merge (`merge_strategy = MERGE_STRATEGY_PHYSICAL`), and |
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.
Based on our discussion yesterday, we should just remove the "merge strategy" concept all together and support only physical in the "merge" apis. We can still provide a composite that will allow for multiple indexes to be searched concurrently, but don't need to make it part of the merge() apis.
| * @brief merge multiple indices together | ||
| */ | ||
| template <typename UpstreamT> | ||
| auto merge(raft::resources const& res, |
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.
I wonder- if we are going to rebuild the cagra index anyways to consolidate tiered indices, should we just go ahead and add all the vectors in tier0 to that cagra index too (e.g. should we also do a compaction?). Disregard if this is already what we're doing.
| * @{ | ||
| */ | ||
| /** | ||
| * @brief Merge multiple indices together into a single index |
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.
Can we flesh out this description a little more to provide more details for the user on exaclty how this does the merge? We should do the same in the c++ description also. Maybe add details about what happens to the vectors in tier 0, what happens to the indexes in tier 1, what are some of the memory considerations (I know there's copies- what are some of the assumptions a user will need to make?)
|
/merge |
699d32c
into
rapidsai:branch-25.10
No description provided.