DIRACGrid/DIRAC — Issue #226: Update in Stager Logic
Author: graciani
Created: 2011-10-11 07:17:00+00:00
State: open
Labels: DMS, Feature request, Task

In order to prevent situations where Replicas from partially Staged Tasks can block the system and to move ahead those requests affecting Replicas already "Online", the following change to the Stager logic will be implemented:

1.- First check availability of Cache for each SE, if it is full no new Replicas will be considered for that SE.

2.- Check Replicas "Waiting" to be Staged. If they are are "Online", include them into a new Stage Request (to extend the pin lifetime) together with al other Replicas in the same Task (Job). The availability of Space in the Cache will not be checked, although the space required will be accounted. Replicas that are not "Online" are changed to "Offline" state.

3.- Check again availability of the Cache for each SE, if it is full no new Replicas will be considered for that SE.

4.- Check "Offline" Replicas and prepare a Stage Request for all those that fit in the space available. Include them into new Stage Requests together with all other Replicas in the same Tasks (Job), the availability of space in the Caches will not be checked for them, although the space required will be accounted.

In this way we assure that "Online" data is used first and requests are always submitted for full Tasks (Jobs) avoiding deadlocks. On the other hand we temporarily overcommit the Cache, but it will be marked as used for the next iterations so the net effect should not be too important.