Nothing Special   »   [go: up one dir, main page]

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve cost model to determine when Bind Join is used #1394

Open
rubensworks opened this issue Jul 10, 2024 · 1 comment
Open

Improve cost model to determine when Bind Join is used #1394

rubensworks opened this issue Jul 10, 2024 · 1 comment

Comments

@rubensworks
Copy link
Member
rubensworks commented Jul 10, 2024

Issue type:

  • 🐌 Performance issue

Description:

In order to resolve the problem where doing direct joins is cheaper than doing bind joins (#548 and #1196),
we introduced a heuristic (cb8d276) that only uses bind joins if the smallest stream is much smaller than the largest stream.

Currently, this heuristic uses the parameter 60 (2543e86), which seems to optimize most queries. However, for BSBM queries 2, 5, and 10, results showed that parameter 100 performed significantly better. But for other queries, this 100 value slowed down things again. This shows that this simplistic cost is missing some parameters. (WatDiv C1 requires <= 61, Ruben's query requires > 55)

Some time later, after adding isRemoteAccess (db38811), I managed to make BSBM 2 and 5 faster. But that made WatDiv S3 and S4 slightly slower. But given the overall positive impact, it was worth it.

The goal of this issue is to come up with a new cost model that includes these hidden parameters. This could include checking the number of join entries, the number of overlapping variables, the join selectivity, ...


Environment:

Copy link

Thanks for reporting!

@github-project-automation github-project-automation bot moved this to Triage in Maintenance Jul 10, 2024
@github-project-automation github-project-automation bot moved this to Triage in Development Jul 10, 2024
@rubensworks rubensworks moved this from Triage to To do (prio:low) in Development Jul 10, 2024
@rubensworks rubensworks moved this from To do (prio:low) to To do (prio:medium) in Development Jul 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: To do (prio:medium)
Development

No branches or pull requests

1 participant