Refactor callbacks in preparation for filtering#571
Conversation
This reverts commit d5133ba.
performance:
|
Thanks for taking a look! Changing the thresholds seems to work for me. Are you sure it's finished fully loading? I'm not completely sure whether the duplicate stores should be a problem, but you're right that they're not necessary - I missed copying those deletions from #559, so added that back in now. The tooltip store is still page-specific though, we don't need those globally. Yes, I did realise that the standalone apps won't work. We can add an option to use I have come across patches/partial updates, but it's somewhat unclear how much benefit we'd get. Would you be able to look into it a bit? The change in performance is because we're going from one benchmark table update -> update one column of category summary to one benchmark table update -> recalculate full category summary table. This is obviously overkill when you only change one table, but when all the tables change, you risk out of sync information when you write out the new category summary data. It's definitely possible that partial updates may help with this, but it's not obvious from the docs that it works on quite such a fine level. |
i renamed my for the other stuff, probably a future pr? |
|
now the category table update seems good, but its not propagating to the summary table |
Pre-review checklist for PR author
PR author must check the checkboxes below when creating the PR.
Summary
Continuation of #559.
In particular, this combines callbacks that recalculate summary tables to take in all benchmark states, as otherwise the the order of updates will impact the summary values calculated due to out-of-date states.
This has the unfortunate side-effect of making individual benchmark changes much heavier, so I've attempted to optimise score calculations a little.
This also fixes some issues to do with syncing stores/values, and allowing scores to be None/NaNs.
More work would definitely be welcome here with respect to optimisation in particular, as responsiveness may be an issue. It may also be good to prevent changes to inputs boxes while changes are propagating, if possible?