-
Notifications
You must be signed in to change notification settings - Fork 291
improve update performance
#5849
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
Conversation
|
Whoops, putting back to draft, overlooked something small |
|
Some tests with 'continue-on-error: true' have failed:
Created by continue-on-error-comment |
It looks like this will probably trigger now whenever there's a build error (i.e. neither |
|
Nice! |
|
Eventually it would be cool if CI ran some benchmarks for everyday operations, and then when something like this comes down the pipe, we can be like "wow and look at the change in the benchmarks!" |
Hrmm, yeah, maybe we can run that workflow only if the |
Overview
This PR improves
updateperformance in two ways:add-only updates, we skip identifying transitive dependents of updates. (Previously we'd do a big query that'd always return nothing).dependents_index(3.5M rows on my machine) and the temporary scope table (~7k in base). I tried a few tricks but the only one that worked is simulating an inner join with a row-valuedINclause. I also added a useful index for the search.Couple perf numbers:
Loose ends
updatecan be made faster with more effort. Parsing, rendering, typechecking, and even simple things like saving updated things to the codebase and updating the root branch are all part of the update process and all take a noticeable amount of time.