-
Notifications
You must be signed in to change notification settings - Fork 3
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
Store sample sheet render tables with sodarcache #1509
Labels
Milestone
Comments
This was referenced Nov 10, 2022
The first thing is to look at At the moment we have 3 args:
Looking into the Modifiers
|
mikkonie
added a commit
that referenced
this issue
Dec 6, 2022
mikkonie
added a commit
that referenced
this issue
Dec 6, 2022
mikkonie
added a commit
that referenced
this issue
Dec 6, 2022
mikkonie
added a commit
that referenced
this issue
Dec 7, 2022
mikkonie
added a commit
that referenced
this issue
Dec 8, 2022
mikkonie
added a commit
that referenced
this issue
Dec 8, 2022
mikkonie
added a commit
that referenced
this issue
Dec 9, 2022
mikkonie
added a commit
that referenced
this issue
Dec 12, 2022
mikkonie
added a commit
that referenced
this issue
Dec 12, 2022
mikkonie
added a commit
that referenced
this issue
Dec 12, 2022
mikkonie
added a commit
that referenced
this issue
Dec 12, 2022
Done. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Recently I've observed several scaling issues with very large studies (5000+ samples). The major bottleneck is the building of study tables, which can take a very long time for such complex graphs.
This can be somewhat improved via smaller optimizations such as #708. However, a relatively simple but a more substantial improvement would be to store the render tables in the database using
sodarcache
. Thus we could skip the building part whenever the sheets or related apps have not been altered.As added bonus, these cached tables could easily be used in loading partial table data into the vue app, which would improve performance even further. Also, they can be used for e.g. cache updates and other similar functionality, meaning we would only have to do the potentially slow rendering only once between sheet edits.
I've written out a spec for a simple but working implementation below. The downside of this is that if someone is doing a lot of edits to the same study many other users are browsing, this creates a bunch of redundant database operations for deleting and rebuilding the cached data. The alternative is to store some kind of a state for "currently/recently edited", but that can be complex as in the current implementation, we can't really force a user to click on "finish editing".
Spec
build_study_tables()
parameters regarding different versions (see below)build_study_tables()
TBD: How to handle variables:edit
,use_config
,ui
TBD: Any exceptions?Tasks
build_study_tables()
parametersSampleSheetTableBuilder
init in modulesThe text was updated successfully, but these errors were encountered: