- Notifications
You must be signed in to change notification settings - Fork671
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
-
Hey, we are evaluating LanceDB to replace our internal in-memory solution for better scalability. Our current index is constructed as follows: The test was done on an M1 Max MBP with 64GB RAM Note ANNSubIndex which takes 111.847289373s. We got similar results with twice as many partitions or with the default 7.5 (computed by Do you have any idea? |
BetaWas this translation helpful?Give feedback.
All reactions
Replies: 3 comments 4 replies
-
I now suspect the single partitions were too big to stay in cache and large enough to take a substantial amount of time to load. |
BetaWas this translation helpful?Give feedback.
All reactions
-
@valkum the biggest red flag to me here is based on your IVF config ... With only 16 IVF partitions and nprobes=20, you’re effectively probing all lists on every query. That defeats IVF’s selectivity and forces many sub-index loads (9 in this run), which is the real cost (I/O & cold cache). However, nprobes = 1 will not be precise enough because it likely doesn't cover enough partitions to have comprehensive coverage. Does any of this ring true for you? |
BetaWas this translation helpful?Give feedback.
All reactions
-
I mean the amount of IVF partitions is supposed to be in that range when using HSNW. The default one provided for an HNSW index is 7 for 25M rows with a dimension of 384. The nprobes are also the default. Which values would you suggest for 25M+ or more rows with a dimension of 384? |
BetaWas this translation helpful?Give feedback.
All reactions
-
I enjoyed getting into more details on this with you yesterday. Thanks for the continuing updates! |
BetaWas this translation helpful?Give feedback.
All reactions
-
I ran some tests against our dataset with the following configurations today. This time on an Apple M1 Max with 64 GB RAM. 1000 PartitionsWith an increased number of partitions: a single For 111 test queries with 10 iterations each, we got a median latency of 5ms and a p99 of 578ms. 1 ProbeWith a decreased number of nprobes to 1: a single For 5 test queries (they were slow so we reduced the amount) with 10 iterations each, we got a median latency of 4ms and a p99 of 8s 960. I will run some more tests until end of Monday. Including:
|
BetaWas this translation helpful?Give feedback.
All reactions
-
Thanks for these updates, interesting results so far. I suspect the biggest difference in p99 between those tests is that with only 1 nprobe and 5x10 tests over 1000 partitions you weren't able to get much cache advantage, but even still 8s over that dataset seems excessive. If you have the appetite for it, it would also be interesting to see how the same tests perform when using an IVF-PQ index rather than the IVF-HNSW. |
BetaWas this translation helpful?Give feedback.
All reactions
-
I will get back to you with those numbers. I also was only able to run the test with complete default values, which showed similar timings as in the initial post. |
BetaWas this translation helpful?Give feedback.