public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
To: Proxmox Backup Server development discussion
	<pbs-devel@lists.proxmox.com>,
	Christian Ebner <c.ebner@proxmox.com>
Subject: Re: [pbs-devel] [PATCH v5 proxmox 2/8] pbs api types: add option to set GC chunk cleanup atime cutoff
Date: Wed, 19 Mar 2025 09:10:03 +0100	[thread overview]
Message-ID: <ab6d4eb5-4232-42c7-99c1-a15a2adcddcf@proxmox.com> (raw)
In-Reply-To: <20250306145252.565270-3-c.ebner@proxmox.com>

Am 06.03.25 um 15:52 schrieb Christian Ebner:
> Add the `gc-atime-cutoff` option to the datastore tuning parameters.
> This allows to specify the time after which the chunks are not
> considered in use anymore if their atime has not been updated since
> then.
> 
> The default is to keep chunks within the 24h 5m timespan (given no
> active writers).
> 
> Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
> ---
> changes since version 4:
> - drop mentioning this being conditional on gc-atime-safety-check,
>   it isn't anymore
> 
>  pbs-api-types/src/datastore.rs | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs
> index 1a4d9e2d..467417e8 100644
> --- a/pbs-api-types/src/datastore.rs
> +++ b/pbs-api-types/src/datastore.rs
> @@ -223,6 +223,15 @@ pub enum DatastoreFSyncLevel {
>      Filesystem,
>  }
>  
> +pub const GC_ATIME_CUTOFF_SCHEMA: Schema = IntegerSchema::new(
> +    "Cutoff (in minutes) for chunk cleanup atime check in garbage collection phase 2 \
> +        (default 24h 5m)",
> +)
> +.minimum(1) // safety margin for kernel timestamp granularity, but stay within minute range
> +.maximum(2880) // 2 days
> +.default(1445)

tiny nit that could definitively get fixed up on applying or if there
is the need for a v6 due to other stuff that actually matters, otherwise
we can keep it as is:
I'd prefer writing time constants that are less common – like these here
– such, that one more easily can tell what the outcome is even without a
comment (that might get outdated), e.g. for this here:

.maximum(2 * 24 * 60)
.default(24 * 60 + 5)

Very common values like 60 m or even 600 s for 1 h are IMO normally fine
though.

> +.schema();
> +
>  #[api(
>      properties: {
>          "chunk-order": {
> @@ -237,6 +246,10 @@ pub enum DatastoreFSyncLevel {
>              default: true,
>              type: bool,
>          },
> +        "gc-atime-cutoff": {
> +            schema: GC_ATIME_CUTOFF_SCHEMA,
> +            optional: true,
> +        },
>      },
>  )]
>  #[derive(Serialize, Deserialize, Default)]
> @@ -250,6 +263,8 @@ pub struct DatastoreTuning {
>      pub sync_level: Option<DatastoreFSyncLevel>,
>      #[serde(skip_serializing_if = "Option::is_none")]
>      pub gc_atime_safety_check: Option<bool>,
> +    #[serde(skip_serializing_if = "Option::is_none")]
> +    pub gc_atime_cutoff: Option<usize>,
>  }
>  
>  pub const DATASTORE_TUNING_STRING_SCHEMA: Schema = StringSchema::new("Datastore tuning options")



_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel

  reply	other threads:[~2025-03-19  8:10 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-06 14:52 [pbs-devel] [PATCH v5 proxmox-backup 0/8] fix #5982: check atime update is honored Christian Ebner
2025-03-06 14:52 ` [pbs-devel] [PATCH v5 proxmox 1/8] pbs api types: add garbage collection atime safety check flag Christian Ebner
2025-03-06 14:52 ` [pbs-devel] [PATCH v5 proxmox 2/8] pbs api types: add option to set GC chunk cleanup atime cutoff Christian Ebner
2025-03-19  8:10   ` Thomas Lamprecht [this message]
2025-03-19  8:48     ` Christian Ebner
2025-03-19  9:01       ` Thomas Lamprecht
2025-03-19  9:08         ` Christian Ebner
2025-03-19  9:13           ` Thomas Lamprecht
2025-03-19  9:25             ` Christian Ebner
2025-03-06 14:52 ` [pbs-devel] [PATCH v5 proxmox-backup 3/8] fix #5982: garbage collection: check atime updates are honored Christian Ebner
2025-03-19  8:45   ` Thomas Lamprecht
2025-03-19  9:22     ` Christian Ebner
2025-03-06 14:52 ` [pbs-devel] [PATCH v5 proxmox-backup 4/8] ui: expose GC atime safety check flag in datastore tuning options Christian Ebner
2025-03-19  8:45   ` Thomas Lamprecht
2025-03-06 14:52 ` [pbs-devel] [PATCH v5 proxmox-backup 5/8] docs: mention GC atime update check for " Christian Ebner
2025-03-06 14:52 ` [pbs-devel] [PATCH v5 proxmox-backup 6/8] datastore: use custom GC atime cutoff if set Christian Ebner
2025-03-06 14:52 ` [pbs-devel] [PATCH v5 proxmox-backup 7/8] ui: expose GC atime cutoff in datastore tuning option Christian Ebner
2025-03-19  8:49   ` Thomas Lamprecht
2025-03-06 14:52 ` [pbs-devel] [PATCH v5 proxmox-backup 8/8] docs: mention gc-atime-cutoff as " Christian Ebner
2025-03-19 17:26 ` [pbs-devel] [PATCH v5 proxmox-backup 0/8] fix #5982: check atime update is honored Christian Ebner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ab6d4eb5-4232-42c7-99c1-a15a2adcddcf@proxmox.com \
    --to=t.lamprecht@proxmox.com \
    --cc=c.ebner@proxmox.com \
    --cc=pbs-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal