Ensure order is deterministic for SelectNeighbors closer caching

This commit is contained in:
Andrew Kane
2023-10-06 12:26:53 -07:00
parent 62482e3760
commit cae162ffc6

View File

@@ -887,6 +887,12 @@ CompareCandidateDistances(const void *a, const void *b)
if (hca->distance > hcb->distance)
return -1;
if (hca->element < hcb->element)
return 1;
if (hca->element > hcb->element)
return -1;
return 0;
}
@@ -1048,6 +1054,10 @@ HnswInsertElement(HnswElement element, HnswElement entryPoint, Relation index, F
else
lw = w;
/* Ensure order is deterministic for SelectNeighbors closer caching */
if (index == NULL)
list_sort(lw, CompareCandidateDistances);
neighbors = SelectNeighbors(lw, lm, lc, procinfo, collation, element, NULL, NULL);
AddConnections(element, neighbors, lm, lc);