Project

Profile

Help

Task #6677

closed

Task #6672: [Epic] Upload Process Improvements

Split the import_collection task into two tasks to reduce the amount of time the repository lock is held

Added by bmbouter over 4 years ago. Updated about 3 years ago.

Status:
CLOSED - DUPLICATE
Priority:
Normal
Assignee:
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Platform Release:
Groomed:
Yes
Sprint Candidate:
No
Tags:
Sprint:
Sprint 81
Quarter:

Description

Ticket moved to GitHub: "pulp/pulp_ansible/709":https://github.com/pulp/pulp_ansible/issues/709


Background

The import_collection task both analyzes a collection here and then creates content and adds it to a repository version here.

Problem

The import_collection runs long enough that to import a lot of content into a repository serializes these long tasks making the whole workload take long. It takes longer than it should because the collection analysis portion of the task runtime takes the majority of the time and the lock on repository is not needed during that. The lock is only needed when creating the RepositoryVersion itself.

Solution

  1. Split import_collection into two tasks. analyze_and_create_collection and then add_collection_to_repository.
  2. Have the analyze_and_create_collection task dispatch the add_collection_to_repository. The analyze_and_create_collection task requires no lock. The add_collection_to_respository should have the lock on the repository.

Also available in: Atom PDF