-
Bug
-
Resolution: Done
-
Normal
-
6.14.1
Description of problem:
katello:delete_orphaned_content triggers queries on the DB to identify what are the orphan units to be removed. However, such query is not efficient on systems where table katello_repository_rpms is big.
Query is slow, consumes a lot of cpu and the task may take long time to run. Examples showing the query and long it took to run:
~~~
postgresql-Fri.log:2024-01-12 10:41:24 EST LOG: duration: 22159297.683 ms execute <unnamed>: SELECT "katello_rpms".* FROM "katello_rpms" WHERE "katello_rpms"."id" NOT IN (SELECT "katello_repository_rpms"."rpm_id" FROM "katello_repository_rpms")
postgresql-Mon.log:2024-01-15 05:07:14 EST LOG: duration: 25619032.228 ms execute <unnamed>: SELECT "katello_rpms".* FROM "katello_rpms" WHERE "katello_rpms"."id" NOT IN (SELECT "katello_repository_rpms"."rpm_id" FROM "katello_repository_rpms")
postgresql-Mon.log:2024-01-15 13:04:45 EST LOG: duration: 30758054.922 ms execute <unnamed>: SELECT "katello_rpms".* FROM "katello_rpms" WHERE "katello_rpms"."id" NOT IN (SELECT "katello_repository_rpms"."rpm_id" FROM "katello_repository_rpms")
postgresql-Sat.log:2024-01-13 11:32:09 EST LOG: duration: 25201996.464 ms execute <unnamed>: SELECT "katello_rpms".* FROM "katello_rpms" WHERE "katello_rpms"."id" NOT IN (SELECT "katello_repository_rpms"."rpm_id" FROM "katello_repository_rpms")
postgresql-Tue.log:2024-01-16 10:53:36 EST LOG: duration: 22865189.741 ms execute <unnamed>: SELECT "katello_rpms".* FROM "katello_rpms" WHERE "katello_rpms"."id" NOT IN (SELECT "katello_repository_rpms"."rpm_id" FROM "katello_repository_rpms")
~~~
Version-Release number of selected component (if applicable):
How reproducible:
Always, on big databases.
Steps to Reproduce:
Conditions to reproduce it simply require big tables katello_repository_rpms and katello_rpms
Actual results:
Task works, but may take long time.
Expected results:
Faster execution.
Additional info: