[pbs-devel] [PATCH proxmox 1/1] pbs-api-types: add verify-job-{read, verify}-threads to tuning options

Nicolas Frey n.frey at proxmox.com
Mon Nov 24 09:57:08 CET 2025


On 11/21/25 3:14 PM, Christian Ebner wrote:
> On 11/21/25 1:32 PM, Nicolas Frey wrote:
>> to determine the default number of threads to use for verify jobs on
>> the datastore level
>>
>> Signed-off-by: Nicolas Frey <n.frey at proxmox.com>
>> ---
>> adds it to the tuning options, though it can easily be moved into its
>> own setting within the datastore configuration if desired
>>
>>   pbs-api-types/src/datastore.rs | 15 ++++++++++++++-
>>   1 file changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/
>> datastore.rs
>> index a214ac25..176c0d4a 100644
>> --- a/pbs-api-types/src/datastore.rs
>> +++ b/pbs-api-types/src/datastore.rs
>> @@ -19,7 +19,8 @@ use crate::{
>>       BACKUP_ID_RE, BACKUP_NS_RE, BACKUP_TIME_RE, BACKUP_TYPE_RE,
>> DATASTORE_NOTIFY_STRING_SCHEMA,
>>       GC_SCHEDULE_SCHEMA, GROUP_OR_SNAPSHOT_PATH_REGEX_STR,
>> PROXMOX_SAFE_ID_FORMAT,
>>       PROXMOX_SAFE_ID_REGEX_STR, PRUNE_SCHEDULE_SCHEMA,
>> SHA256_HEX_REGEX, SINGLE_LINE_COMMENT_SCHEMA,
>> -    SNAPSHOT_PATH_REGEX_STR, UPID,
>> +    SNAPSHOT_PATH_REGEX_STR, UPID, VERIFY_JOB_READ_THREADS_SCHEMA,
>> +    VERIFY_JOB_VERIFY_THREADS_SCHEMA,
>>   };
>>     const_regex! {
>> @@ -262,6 +263,14 @@ pub const GC_CACHE_CAPACITY_SCHEMA: Schema =
>>               schema: GC_CACHE_CAPACITY_SCHEMA,
>>               optional: true,
>>           },
>> +        "verify-job-verify-threads": {
> 
> nit: these are user facing and a bit clumsy, especially if to be set
> via cli. so maybe `default-verificaton-workers`?
> 

Yes, i think the default-* naming scheme actually describes it better
here, as they can be overridden on a job level anyway, so will change
this in a v2, thanks for the suggestion!

>> +            schema: VERIFY_JOB_VERIFY_THREADS_SCHEMA,
>> +            optional: true,
>> +        },
>> +        "verify-job-read-threads": {
> 
> ... same: maybe `default-verification-readers`. But no hard opinion
> here, as at least your suggestions make the correlation to the now
> pre-existing per verify job configuration parameters clearer.
> >> +            schema: VERIFY_JOB_READ_THREADS_SCHEMA,
>> +            optional: true,
>> +        },
>>       },
>>   )]
>>   #[derive(Serialize, Deserialize, Default)]
>> @@ -279,6 +288,10 @@ pub struct DatastoreTuning {
>>       pub gc_atime_cutoff: Option<usize>,
>>       #[serde(skip_serializing_if = "Option::is_none")]
>>       pub gc_cache_capacity: Option<usize>,
>> +    #[serde(skip_serializing_if = "Option::is_none")]
>> +    pub verify_job_verify_threads: Option<usize>,
>> +    #[serde(skip_serializing_if = "Option::is_none")]
>> +    pub verify_job_read_threads: Option<usize>,
>>   }
>>     pub const DATASTORE_TUNING_STRING_SCHEMA: Schema =
>> StringSchema::new("Datastore tuning options")
> 





More information about the pbs-devel mailing list