-
Notifications
You must be signed in to change notification settings - Fork 7
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
Pipeline list and execution list views refresh very inefficient and slow #544
Comments
So after further thorrow testing, it was discovered that this large amount of selects was generated during creating tables - more exactly checking permissions for action buttons This means that in pipeline view, there are 6 checks and each tries to load the pipeline, that is 6 selects for 1 table row. When table has 20 rows, this means 6 * 20 = 120 selects every time table is refreshed (which is very often as this is triggered by any change in the database) Same thing for executions - 5 checks --> 5 * 20 = 100 selects every time table is refreshed. (again very often) For scheduler view, situation sligtly differs but still there are redundant selects. |
Partly solved in #547 - introduced caches to minimalize count of selects |
I would like to point out again that these refreshers that are supposed to refresh the tables are very ineficcent as they don't check if something relevant has changed, they just check if anything has changed in the database - therefore countless meaningless refreshes are done |
Pull request #548 partially solves that, BUT: Caching is already available in the container loading the data from DB so this pull request is not needed. This pull request #548 adds yet another and different caching mechanism, which just complicates maintenance. Also in 2.3.1, we decreased the number of entities being loaded from db, so for example, all permissions from permissions table are not loaded for each pipeline as the pipeline is listed. Nevertheless the issue described in #584 is still there. So the pull request was not merged to 2.3.X, but the findings in the issue description here should be re-examined (taking into account #584 and other changes in 2.3.1) |
During testing on our development environment, we have discovered that refreshing of pipelines and executions lists views is very inefficient. There are several reasons for this:
On environments with large amount of data, especially when database is on other server, as we already have seen on our test environment.
From what I read, I think there are 2 possible ways of fixing this:
Good start is to read:
This is quite a complex problem and requires further deep examination
The text was updated successfully, but these errors were encountered: