Skip to content

Conversation

@GuyAv46
Copy link
Collaborator

@GuyAv46 GuyAv46 commented Apr 23, 2023

Describe the changes in the pull request

Implements rangeQuery for VecSimTieredIndex.

As part of this, the sorting (order) of the returned results moved from the C API to the C++ API and added an overload function for the range query call.

This PR also includes a fix for searchBottomLayerEP, where we (safely) get a copy of the old entry point, but by the time we get to get the max_level_ it was updated to the new max level of the new entry point, and we tried to look at a non-existing neighbor list of the old entry point at the new max level.

Main objects this PR modified

  1. range queries for VecSimTieredIndex
  2. moved the sorting phase from C API into the C++ code
  3. fix a bug in searchBottomLayerEP

Mark if applicable

  • This PR introduces API changes
  • This PR introduces serialization changes

@GuyAv46 GuyAv46 added macos and removed jammy labels Apr 23, 2023
Base automatically changed from guyav-tiered_hnsw_batch_iterator to feature_HNSW_tiered_index April 24, 2023 15:17
@GuyAv46 GuyAv46 force-pushed the guyav-tiered_hnsw_range branch from 914214a to 1122fa4 Compare April 24, 2023 16:54
@codecov
Copy link

codecov bot commented Apr 24, 2023

Codecov Report

❗ No coverage uploaded for pull request base (feature_HNSW_tiered_index@931074b). Click here to learn what that means.
Patch has no changes to coverable lines.

❗ Current head 6f9c772 differs from pull request most recent head 0fd8225. Consider uploading reports for the commit 0fd8225 to get more accurate results

Additional details and impacted files
@@                     Coverage Diff                      @@
##             feature_HNSW_tiered_index     #360   +/-   ##
============================================================
  Coverage                             ?   96.78%           
============================================================
  Files                                ?       66           
  Lines                                ?     4600           
  Branches                             ?        0           
============================================================
  Hits                                 ?     4452           
  Misses                               ?      148           
  Partials                             ?        0           

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@GuyAv46 GuyAv46 force-pushed the guyav-tiered_hnsw_range branch from 37fdb48 to e9d9e91 Compare April 27, 2023 11:56
@GuyAv46 GuyAv46 marked this pull request as ready for review April 27, 2023 11:57
@GuyAv46 GuyAv46 added macos and removed macos labels Apr 27, 2023
@GuyAv46 GuyAv46 requested a review from alonre24 April 27, 2023 12:30
Copy link
Collaborator

@alonre24 alonre24 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No actual comments, just add clarifications in tests

@GuyAv46 GuyAv46 force-pushed the guyav-tiered_hnsw_range branch from 17481cf to 6f9c772 Compare May 1, 2023 11:43
@GuyAv46 GuyAv46 added multi-build and removed macos labels May 1, 2023
GuyAv46 and others added 8 commits May 7, 2023 13:36
the old entry point but then we get the new max
level when trying to search using the old one
Co-authored-by: alonre24 <alonreshef24@gmail.com>
Co-authored-by: alonre24 <alonreshef24@gmail.com>
@GuyAv46 GuyAv46 force-pushed the guyav-tiered_hnsw_range branch from 6f9c772 to 0fd8225 Compare May 7, 2023 10:37
@GuyAv46 GuyAv46 merged commit 3a49c70 into feature_HNSW_tiered_index May 7, 2023
@GuyAv46 GuyAv46 deleted the guyav-tiered_hnsw_range branch May 7, 2023 10:49
meiravgri pushed a commit that referenced this pull request May 8, 2023
* implemented `rangeQuery` for VecSimTieredIndex,
... including needed utility functions

* renaming `merge_results.h` and moving `filter_results` to it

* fix build

* first test and some fixes

* improved test and added a parallel test

* fix a bug where we safely get (from `safeGetEntryPoint`)
the old entry point but then we get the new max
level when trying to search using the old one

* fix tests

* Update comments

* review fixes

* after rebase fixes

* added a general comment on tiered index's guarantees
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants