Hi, Is there a way to have hourly or minute based lifecycle rather than a 1 day set on a bucket? When I checked multiple xml rules all of them day based and can't set hour or minute value: Multipart cleaning: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>Incomplete Multipart Uploads</ID> <Prefix/> <Status>Enabled</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>1</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration> Basic retention: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>5 days retention</ID> <Prefix/> <Status>Enabled</Status> <Expiration> <Days>5</Days> </Expiration> </Rule> </LifecycleConfiguration> Tag based retention: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>1 day object expiry</ID> <Filter> <Tag> <Key>expiration</Key> <Value>1d</Value> </Tag> </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> </Expiration> </Rule> </LifecycleConfiguration> Prefix based retention <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>hermes-1-day-retention</ID> <Filter> <Prefix>her-</Prefix> </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> //retention </Expiration> </Rule> </LifecycleConfiguration> ________________________________ This message is confidential and is for the sole use of the intended recipient(s). It may also be privileged or otherwise protected by copyright or other legal rules. If you have received it by mistake please let us know by reply email and delete it from your system. It is prohibited to copy this message or disclose its content to anyone. Any confidentiality or privilege is not waived or lost by any mistaken delivery or unauthorized disclosure of the message. All messages sent to and from Agoda may be monitored to ensure compliance with company policies, to protect the company's interests and to remove potential malware. Electronic messages may be intercepted, amended, lost or deleted, or contain viruses.
Hi, Do you try to contact with Amazon to change lifecycle specs and add hours and minutes support? Without spec Ceph can't operate non Days field k Sent from my iPhone
On 27 Mar 2025, at 10:50, Szabo, Istvan (Agoda) <Istvan.Szabo@agoda.com> wrote:
Hi,
Is there a way to have hourly or minute based lifecycle rather than a 1 day set on a bucket?
When I checked multiple xml rules all of them day based and can't set hour or minute value:
Multipart cleaning: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>Incomplete Multipart Uploads</ID> <Prefix/> <Status>Enabled</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>1</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>
Basic retention: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>5 days retention</ID> <Prefix/> <Status>Enabled</Status> <Expiration> <Days>5</Days> </Expiration> </Rule> </LifecycleConfiguration>
Tag based retention: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>1 day object expiry</ID> <Filter> <Tag> <Key>expiration</Key> <Value>1d</Value> </Tag> </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> </Expiration> </Rule> </LifecycleConfiguration> Prefix based retention <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>hermes-1-day-retention</ID> <Filter> <Prefix>her-</Prefix> </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> //retention </Expiration> </Rule> </LifecycleConfiguration>
________________________________ This message is confidential and is for the sole use of the intended recipient(s). It may also be privileged or otherwise protected by copyright or other legal rules. If you have received it by mistake please let us know by reply email and delete it from your system. It is prohibited to copy this message or disclose its content to anyone. Any confidentiality or privilege is not waived or lost by any mistaken delivery or unauthorized disclosure of the message. All messages sent to and from Agoda may be monitored to ensure compliance with company policies, to protect the company's interests and to remove potential malware. Electronic messages may be intercepted, amended, lost or deleted, or contain viruses. _______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
A bit of context: LC processing normally only happens once a day, so smaller granularity for the age here couldn’t be implemented as expected. This would be tantamount to an RFE to fundamentally change the LC workflow.
On Mar 27, 2025, at 10:31 AM, Konstantin Shalygin <k0ste@k0ste.ru> wrote:
Hi,
Do you try to contact with Amazon to change lifecycle specs and add hours and minutes support? Without spec Ceph can't operate non Days field
k Sent from my iPhone
On 27 Mar 2025, at 10:50, Szabo, Istvan (Agoda) <Istvan.Szabo@agoda.com> wrote:
Hi,
Is there a way to have hourly or minute based lifecycle rather than a 1 day set on a bucket?
When I checked multiple xml rules all of them day based and can't set hour or minute value:
Multipart cleaning: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>Incomplete Multipart Uploads</ID> <Prefix/> <Status>Enabled</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>1</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>
Basic retention: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>5 days retention</ID> <Prefix/> <Status>Enabled</Status> <Expiration> <Days>5</Days> </Expiration> </Rule> </LifecycleConfiguration>
Tag based retention: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>1 day object expiry</ID> <Filter> <Tag> <Key>expiration</Key> <Value>1d</Value> </Tag> </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> </Expiration> </Rule> </LifecycleConfiguration> Prefix based retention <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>hermes-1-day-retention</ID> <Filter> <Prefix>her-</Prefix> </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> //retention </Expiration> </Rule> </LifecycleConfiguration>
________________________________ This message is confidential and is for the sole use of the intended recipient(s). It may also be privileged or otherwise protected by copyright or other legal rules. If you have received it by mistake please let us know by reply email and delete it from your system. It is prohibited to copy this message or disclose its content to anyone. Any confidentiality or privilege is not waived or lost by any mistaken delivery or unauthorized disclosure of the message. All messages sent to and from Agoda may be monitored to ensure compliance with company policies, to protect the company's interests and to remove potential malware. Electronic messages may be intercepted, amended, lost or deleted, or contain viruses. _______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
This can be done in RGW, sort of. We have a debug config option (rgw_lc_debug_interval) which changes "days" so some other configurable interval. We use this for testing lifecycle in minutes rather than in days. However, it is intended for debug testing only, and is a *very* large hammer. It just runs all of lifecycle processing every <interval> seconds, rather than a midnight. If you really want to run this in a production environment, keep several things in mind: 1. All lifecycle is affected. For every setting that refers to a day, it now refers to <interval>. 2. This means all policy is wrong, and everyone writing lifecycle policy needs to know this, and write policy shifted to <interval> rather than days. 3. This also means the overhead of lifecycle is massively increased. Lifecycle scans every object in every bucket with policy every <interval>. This is not usually a problem, because it happens once per day, and has 24 hours to complete (but in large systems, it can even take more than 24 hours to complete). Make sure your cluster is small enough that all lifecycle can be processed in <interval>, or it will generally back up and not process things in time. So, basically, it can sort of be done, but it's a very bad idea. Daniel On 3/27/25 10:49 AM, Anthony D'Atri wrote:
A bit of context:
LC processing normally only happens once a day, so smaller granularity for the age here couldn’t be implemented as expected. This would be tantamount to an RFE to fundamentally change the LC workflow.
On Mar 27, 2025, at 10:31 AM, Konstantin Shalygin <k0ste@k0ste.ru> wrote:
Hi,
Do you try to contact with Amazon to change lifecycle specs and add hours and minutes support? Without spec Ceph can't operate non Days field
k Sent from my iPhone
On 27 Mar 2025, at 10:50, Szabo, Istvan (Agoda) <Istvan.Szabo@agoda.com> wrote:
Hi,
Is there a way to have hourly or minute based lifecycle rather than a 1 day set on a bucket?
When I checked multiple xml rules all of them day based and can't set hour or minute value:
Multipart cleaning: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>Incomplete Multipart Uploads</ID> <Prefix/> <Status>Enabled</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>1</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>
Basic retention: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>5 days retention</ID> <Prefix/> <Status>Enabled</Status> <Expiration> <Days>5</Days> </Expiration> </Rule> </LifecycleConfiguration>
Tag based retention: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>1 day object expiry</ID> <Filter> <Tag> <Key>expiration</Key> <Value>1d</Value> </Tag> </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> </Expiration> </Rule> </LifecycleConfiguration> Prefix based retention <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>hermes-1-day-retention</ID> <Filter> <Prefix>her-</Prefix> </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> //retention </Expiration> </Rule> </LifecycleConfiguration>
________________________________ This message is confidential and is for the sole use of the intended recipient(s). It may also be privileged or otherwise protected by copyright or other legal rules. If you have received it by mistake please let us know by reply email and delete it from your system. It is prohibited to copy this message or disclose its content to anyone. Any confidentiality or privilege is not waived or lost by any mistaken delivery or unauthorized disclosure of the message. All messages sent to and from Agoda may be monitored to ensure compliance with company policies, to protect the company's interests and to remove potential malware. Electronic messages may be intercepted, amended, lost or deleted, or contain viruses. _______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
_______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
If you really do need it to run more frequently, you could try adding a cron job to run the lifecycle and gc just for the required bucket. That way the time units all remain the same. But, you do have to be aware of the overhead (less for just nominated buckets), and I don't know what would happen if cron jobs and/or the inbuilt midnight lifecycle overlap. For a while, on one cluster, we had two buckets on which the lifecycle never ran. We didn't get to the bottom of why, but it was fixed in 19.2.1. Until then we had a cron job that ran at 0100 each day. Chris On 31/03/2025 17:14, Daniel Gryniewicz wrote:
This can be done in RGW, sort of. We have a debug config option (rgw_lc_debug_interval) which changes "days" so some other configurable interval. We use this for testing lifecycle in minutes rather than in days. However, it is intended for debug testing only, and is a *very* large hammer. It just runs all of lifecycle processing every <interval> seconds, rather than a midnight.
If you really want to run this in a production environment, keep several things in mind:
1. All lifecycle is affected. For every setting that refers to a day, it now refers to <interval>.
2. This means all policy is wrong, and everyone writing lifecycle policy needs to know this, and write policy shifted to <interval> rather than days.
3. This also means the overhead of lifecycle is massively increased. Lifecycle scans every object in every bucket with policy every <interval>. This is not usually a problem, because it happens once per day, and has 24 hours to complete (but in large systems, it can even take more than 24 hours to complete). Make sure your cluster is small enough that all lifecycle can be processed in <interval>, or it will generally back up and not process things in time.
So, basically, it can sort of be done, but it's a very bad idea.
Daniel
On 3/27/25 10:49 AM, Anthony D'Atri wrote:
A bit of context:
LC processing normally only happens once a day, so smaller granularity for the age here couldn’t be implemented as expected. This would be tantamount to an RFE to fundamentally change the LC workflow.
On Mar 27, 2025, at 10:31 AM, Konstantin Shalygin <k0ste@k0ste.ru> wrote:
Hi,
Do you try to contact with Amazon to change lifecycle specs and add hours and minutes support? Without spec Ceph can't operate non Days field
k Sent from my iPhone
On 27 Mar 2025, at 10:50, Szabo, Istvan (Agoda) <Istvan.Szabo@agoda.com> wrote:
Hi,
Is there a way to have hourly or minute based lifecycle rather than a 1 day set on a bucket?
When I checked multiple xml rules all of them day based and can't set hour or minute value:
Multipart cleaning: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>Incomplete Multipart Uploads</ID> <Prefix/> <Status>Enabled</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>1</DaysAfterInitiation>
</AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>
Basic retention: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>5 days retention</ID> <Prefix/> <Status>Enabled</Status>
<Expiration> <Days>5</Days>
</Expiration> </Rule> </LifecycleConfiguration>
Tag based retention: <?xml version="1.0" ?> <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>1 day object expiry</ID> <Filter> <Tag> <Key>expiration</Key>
<Value>1d</Value>
</Tag> </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> </Expiration> </Rule> </LifecycleConfiguration> Prefix based retention <LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>hermes-1-day-retention</ID> <Filter> <Prefix>her-</Prefix> </Filter> <Status>Enabled</Status> <Expiration> <Days>1</Days> //retention </Expiration> </Rule> </LifecycleConfiguration>
________________________________ This message is confidential and is for the sole use of the intended recipient(s). It may also be privileged or otherwise protected by copyright or other legal rules. If you have received it by mistake please let us know by reply email and delete it from your system. It is prohibited to copy this message or disclose its content to anyone. Any confidentiality or privilege is not waived or lost by any mistaken delivery or unauthorized disclosure of the message. All messages sent to and from Agoda may be monitored to ensure compliance with company policies, to protect the company's interests and to remove potential malware. Electronic messages may be intercepted, amended, lost or deleted, or contain viruses. _______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
_______________________________________________ ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
ceph-users mailing list -- ceph-users@ceph.io To unsubscribe send an email to ceph-users-leave@ceph.io
3. This also means the overhead of lifecycle is massively increased. Lifecycle scans every object in every bucket with policy every <interval>. This is not usually a problem, because it happens once per day, and has 24 hours to complete (but in large systems, it can even take more than 24 hours to complete). Make sure your cluster is small enough that all lifecycle can be processed in <interval>, or it will generally back up and not process things in time.
So, basically, it can sort of be done, but it's a very bad idea.
One strategy that can partly mitigate the overhead is to have a cohort of RGWs that are dedicated to LC and/or GC processing that are not behind whatever ingress / LB endpoint is used to federate client operations. With such a strategy the client RGWs have LC/GC processing disabled via a central config mask, and the dedicated cohort have LC/GC enabled via a similar config/mask. This way clients and LC/GC don’t contend directly for each other within the same RGW instances, though of course the CPU and underlying storage demands remain, especially if one has bought into the false economy of HDDs for bucket data.
participants (5)
-
Anthony D'Atri
-
Chris Palmer
-
Daniel Gryniewicz
-
Konstantin Shalygin
-
Szabo, Istvan (Agoda)