Skip to content
Snippets Groups Projects
Commit 5e602c9f authored by mvelosob's avatar mvelosob
Browse files

Avoid large buffer reservations with RAO (#1054)

Refactor the RecallTaskInjector to limit the number of tasks passed
at once to the TapeReadSingleThread for a tape with RAO and to reserve
disk space in smaller batchs

In every call of RecallTaskInjector::synchronousFetch the injector
will try to pop jobs from the queue so that it holds an ammount of
work equal to the limit of files or bytes imposed by the RAO
implementation or by the value given by the
BulkRequestRecallMaxBytes and BulkRequestRecallMaxFiles config
options in /etc/cta/cta-taped.conf.

In every call of RecallTaskInjector::injectBulkRecalls the
RecallTaskInjector will inject a set of tasks limited by the
BulkRequestRecallMaxBytes and BulkRequestRecallMaxFiles config
options in /etc/cta/cta-taped.conf to the TapeReadSingleThread
and DiskWriteThreadPool.

The disk space reservation is done once for every job batch (instead of
all the disk space being reserved when the jobs are popped)

This prevents tapeservers with RAO from reserving a large amount
of the disk buffer upfront, which would cause the buffer to fill quickly
by a few drives, which cannot fill it fast enough
parent 63f37db2
No related branches found
No related tags found
No related merge requests found
Showing
with 805 additions and 298 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment