Project

Profile

Help

Story #5108

closed

As a user, a task can reserve multiple resources

Added by ttereshc over 4 years ago. Updated over 4 years ago.

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

100%

Estimated time:
Platform Release:
2.21.0
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Quarter:

Description

Motivation

Dependency solving for multiple repositories (which implies copy to multiple target repositories) requires the ability to lock on multiple resources.
Without this feature, changes to a repo might not be deterministic.

Solution

  • Change uniqueness constraint on the ReservedResource model, from task_id to (task_id, resource_id).
  • For multi-lock task choose a worker if only 0 or 1 workers have a lock for any of the resources from a multi-lock task, otherwise wait.
  • release all the locks for the task when it's complete.
  • document the worst case scenario (N-2 works can be idle until there is only one worker being busy)

the pulp3 patch adding multi-locking support https://github.com/pulp/pulpcore/commit/ff0739e9a9fe4d3c0762e498ae59ec756d02fb71


Related issues

Blocks RPM Support - Story #5067: As a user, multiple source/target repositories can be used for recursive copyCLOSED - CURRENTRELEASEdalley

Actions

Also available in: Atom PDF