Issue #9243
Updated by dalley over 3 years ago
"touching" existing content and artifacts individually has led to a slowdown on re-syncs of between 30-50% depending on the size of the repo, due to performing tens of thousands of extra queries. Bulk touch functionality was added to pulpcore by [0], but we must take advantage of it to eliminate the slowdown. See the following spots where touch() is called in a loop: * See: https://github.com/pulp/pulpcore/blob/5def33f2a49977fd1d41d13615f17e44d8d9f38a/pulpcore/plugin/stages/content_stages.py#L54 * https://github.com/pulp/pulpcore/blob/5def33f2a49977fd1d41d13615f17e44d8d9f38a/pulpcore/plugin/stages/artifact_stages.py#L98 * https://github.com/pulp/pulpcore/blob/d5bc207b9e338dafd541d7d82e3d5138b73cf763/pulpcore/plugin/actions.py#L44 Additionally (additionally it would be good to eliminate the extra query here: https://github.com/pulp/pulpcore/blob/feede7bb08b1e3107766ce534433cb7867fe52bd/pulpcore/content/handler.py#L715 https://github.com/pulp/pulpcore/blob/feede7bb08b1e3107766ce534433cb7867fe52bd/pulpcore/content/handler.py#L715) As this was a significant performance regression introduced by 3.14, we should consider backporting the fixes. This will include [0] as well which will require a small portion of the refactor introduced here [1] [0] https://pulp.plan.io/issues/9234 [1] https://github.com/pulp/pulpcore/pull/1528/files#diff-81f6a78175bb93934b6beff952646d3ca1ef3731f1ff14492d4ec77bfc3fdf82R195