Open mdellweg opened 1 year ago
Also Importer is syncronously removed, we should check it out too
To clarify: The number of upload chunks related to an upload is probably not problematic, but the fact that each chunk needs to delete a file from storage is. Instead just producing orphaned artifacts would make thinks way easier.
RE import/export - deleting an Importer/Exporter removes its associated Import/Export objects, which have lists of repo-versions-exported or publications-exported. This is a "small" number of entities, making the chance of the delete-timeout-problem very small.
I think the more important consideration is, "what happens if you delete an Importer/Exporter while it's in use. If the delete was async, the user would be protected by the standard reserved-resources processing. For the moment, I'd propose this is a "don't do that" problem, rather than changing the existing API.
Sometimes deleting an object cascades to deleting multiple thousands of objects. This can stall or even timeout the gunicorn worker. In such cases, pulp tasks should be used. However switching to asynchronous deletion is changing the api slightly.
What we identified so far is that Publications, Exports and Uploads may be problematic.
One Idea that would help and make the codebase cleaner is to turn Upload chunks into Artifacts.