dcache
dcache copied to clipboard
PoolManager suspends/fails read request if p2p is needed and max-copies is reached
The max-copies parameter allows the dCache admin to configure PoolManager so that it enforces a maximum number of replicas of a file. Once this value is reached, PoolManager refuses to create any more replicas.
There are situations where a link (chosen for a read/open operation) selects only a subset of pools, and that this subset does not contain a replica of the the file the user wishes to read. In this situation, PoolManager will attempt to create a fresh replica by starting pool-to-pool replication.
However, if the file already has max-copies replicas then the pool-to-pool operation is not attempted and the request either fails or is suspended (depending on other configuration and environmental factors).
It would be technically possible for PoolManager to resolve this problem by "moving" a replica instead of creating a new one.
The moved replica should probably not be the primary copy (the one with the system sticky) if max-copies > 1.
There might be cases that couldn't be handled (e.g., if there are two replicas, with max-copies == 2 and the cache-only replica is on a pool that is currently offline).