Skip to content

Add missing Maximum Concurrent Jobs to the Storage configuration#235

Merged
smortex merged 3 commits into
masterfrom
maxconcurjobs-in-sd-storage
Jan 5, 2026
Merged

Add missing Maximum Concurrent Jobs to the Storage configuration#235
smortex merged 3 commits into
masterfrom
maxconcurjobs-in-sd-storage

Conversation

@smortex

@smortex smortex commented Jan 2, 2026

Copy link
Copy Markdown
Member

Just like the director and file daemon, the storage daemon has a global "Maximum Concurrent Jobs" that sets the overall maximum number of concurrent jobs the daemon will run.

Without this, a blocked backup on a pool of a storage daemon prevent other jobs to other pools from being run.

@smortex smortex added the bug Something isn't working label Jan 2, 2026
@smortex smortex changed the title Add missing maxconcurjobs in the Storage section of the storage daemon Add missing Maximum Concurrent Jobs to the Storage configuration Jan 3, 2026
@smortex

smortex commented Jan 3, 2026

Copy link
Copy Markdown
Member Author

Initial testing show the expected improvement (saw 2 jobs interleaved). Now the Device section should also be tunable.

Interestingly, the storage and storage::device parameters are called maxconcurjobs but other classes use max_concurrent_jobs. I will therefore adjust this PR to have consistent naming and deprecate the maxconcurjobs parameters (emitting a warning when it is used). The storage class will have a new device_max_concurrent_jobs to replace the legacy maxconcurjobs for the device it creates, along with the new max_concurrent_jobs that was missing.

Comment thread REFERENCE.md
Comment on lines -908 to +926
Default value: `5`
Default value: `20`

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a backwards-incompatible change, but the old value here is what was used for the new device_max_concurrent_jobs. The job limit was missing and limiting the storage daemon to a single job only, which was not expected.

@smortex
smortex marked this pull request as ready for review January 4, 2026 21:10
@smortex
smortex force-pushed the maxconcurjobs-in-sd-storage branch from 687ed1c to 264ef95 Compare January 5, 2026 03:01
Just like the director and file daemon, the storage daemon has a global
"Maximum Concurrent Jobs" that sets the overall maximum number of
concurrent jobs the daemon will run.
@smortex
smortex force-pushed the maxconcurjobs-in-sd-storage branch from 264ef95 to 681cc24 Compare January 5, 2026 16:38
The bacula storage confiruration used maxconcurjobs while the other
components use max_concurrent_jobs.

Always use max_concurrent_jobs to control the number of concurrent jobs,
and emit a deprecation message when using the older maxconcurjobs.
@smortex
smortex force-pushed the maxconcurjobs-in-sd-storage branch from 681cc24 to 586f36d Compare January 5, 2026 16:46
@smortex

smortex commented Jan 5, 2026

Copy link
Copy Markdown
Member Author

Rebased on top of master after #206 added tests for this class.

@smortex
smortex merged commit dda53f7 into master Jan 5, 2026
4 checks passed
@smortex
smortex deleted the maxconcurjobs-in-sd-storage branch January 5, 2026 16:48
@smortex smortex added this to the 9.0.0 milestone Jan 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants