Draft:[Only for concept] first draft proposal for dependency list
What does this MR do and why?
Motivation
There has been a lot of concerns in regards to this query performance at the same time that new features are planned in the roadmap (licenses, vulnerabilities,...).
This proposal would solve the performance side of the feature however the compromise in regards to the UX was not desired.
Proposal
The approach is this incomplete MR is an alternative attempt of tackling the performance issue without compromising the UX as much. The following screenshots are only for a basic understanding of the approach and do not represent the final solution. The main idea is that the rows would be initially collapse by only displaying component name, version (packager could be added) while the remaining data would be fetched individually and on demand.
From a database perspective, this would allow us to not have to compromise on data consistency for the vulnerability data as discussed here.
Screenshots or screen recordings
Note: Both location and project count would still be available.
Before | After |
---|---|
Database
Before | After |
---|---|
query plan | query plan |
Time: 1.635 min | Time: 2.520 s |
Shared buffers hits: 12456 (~97.30 MiB) | Shared buffers hits: 12456 (~97.30 MiB) |
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.