Skip to content

Fix join set degeneration on low-degree nodes (backport) - #16438

Merged
mayya-sharipova merged 1 commit into
apache:branch_10xfrom
mayya-sharipova:backport-16251-joinset-degree-clamp-10x
Jul 30, 2026
Merged

Fix join set degeneration on low-degree nodes (backport)#16438
mayya-sharipova merged 1 commit into
apache:branch_10xfrom
mayya-sharipova:backport-16251-joinset-degree-clamp-10x

Conversation

@mayya-sharipova

@mayya-sharipova mayya-sharipova commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Backport of #16435

UpdateGraphsUtils#computeJoinSet asked for a coverage of 2 for every
node with a degree below 9, including nodes with a degree of 1. Such a
node can be covered at most once (only its neighbours can cover it), so
the coverage was unsatisfiable and the node always ended up in the join
set itself.

On hub-and-spoke shaped graphs, which HNSW produces for 1-dimensional
or heavily duplicated vectors, almost all nodes have a degree of 1, so
the join set degenerated to the whole graph and merging lost all its
savings. Clamp the requested coverage by the node's degree; graphs
where all nodes have a degree of 2 or more are unaffected.

Fixes apache#16251

(cherry picked from commit 5fa57e7)
@mayya-sharipova mayya-sharipova changed the title Backport of #16435: Fix join set degeneration on low-degree nodes Fix join set degeneration on low-degree nodes (backport) Jul 30, 2026
@mayya-sharipova
mayya-sharipova merged commit 6a62b3c into apache:branch_10x Jul 30, 2026
6 checks passed
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.

1 participant