You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MB-69881: Improved APIs and perf optimizations for vector search (#2270)
- Use a `bitset` to track eligible documents instead of a slice of `N
uint64s`, reducing memory usage from `8N bytes` to `N/8 bytes` per
segment (up to `64×` reduction) and improving cache locality.
- Pass an iterator over eligible documents that iterates the bitset
directly, allowing direct translation into a bitset of eligible vector
IDs in the storage layer and eliminating the need for a separate slice
intermediary.
- Fix garbage creation in the `UnadornedPostingsIterator`, which
previously allocated a temporary struct per Next() call to wrap a doc
number and satisfy the `Postings` interface; the iterator now returns a
single reusable struct (one-time allocation) consistent with the working
of the `PostingsIterator` in the storage-layer.
- Avoid unnecessary `BytesRead` statistics computation when executing
searches in no-scoring mode, removing redundant work as a
micro-optimization.
---------
Co-authored-by: Abhinav Dangeti <[email protected]>
0 commit comments