This is an automated email from the ASF dual-hosted git repository.
ChenSammi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone-site.git
The following commit(s) were added to refs/heads/master by this push:
new 78f1d972d1 HDDS-15921. Move feature branch merge checklist to the
website for S3 Lifecycle Configuration (#500)
78f1d972d1 is described below
commit 78f1d972d1837acbf2ea8d1851354025a043aa7f
Author: Priyesh Karatha <[email protected]>
AuthorDate: Tue Jul 21 17:49:37 2026 +0530
HDDS-15921. Move feature branch merge checklist to the website for S3
Lifecycle Configuration (#500)
---
.../16-hdds-8342-s3-lifecycle-configurations.md | 77 ++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git
a/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/16-hdds-8342-s3-lifecycle-configurations.md
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/16-hdds-8342-s3-lifecycle-configurations.md
new file mode 100644
index 0000000000..f1b75e9496
--- /dev/null
+++
b/docs/08-developer-guide/04-project/01-git/03-feature-branches/03-merged-branches/16-hdds-8342-s3-lifecycle-configurations.md
@@ -0,0 +1,77 @@
+# HDDS-8342 : S3 Lifecycle Configuration - Object Expiration
+
+Epic: [HDDS-8342](https://issues.apache.org/jira/browse/HDDS-8342)
+Feature branch: https://github.com/apache/ozone/tree/HDDS-8342
+
+## 1. Builds/intermittent test failures
+
+There are no intermittent failures specific to the HDDS-8342 branch as of now.
During the development , it was ensured all the CI checks were clean prior to
every commit merge .
+
+The plan is to run repeated CI checks on the merge commit to master.
+
+## 2. Documentation
+
+[User
Documentation](https://github.com/apache/ozone/blob/HDDS-8342/hadoop-hdds/docs/content/feature/Lifecycle.md)
or S3 Lifecycle Configuration - Object Expiration has been added.
+
+## 3. Design, attached the docs
+
+Design document can be found here : [S3 Lifecycle Configuration - Object
Expiration Design
Doc](https://github.com/apache/ozone/blob/HDDS-8342/hadoop-hdds/docs/content/design/s3-object-lifecycle-management.md).
+
+## 4. S3 compatibility
+
+N/A, only the object expiration action of S3 Lifecycle configuration is
supported.
+
+## 5. Docker-compose / Acceptance tests
+
+New robot test
[`om-lifecycle.robot`](https://github.com/apache/ozone/blob/HDDS-8342/hadoop-ozone/dist/src/main/smoketest/lifecycle/om-lifecycle.robot)
and
[`bucketlifecycle.robot`](https://github.com/apache/ozone/blob/HDDS-8342/hadoop-ozone/dist/src/main/smoketest/s3/bucketlifecycle.robot)
are being added.
+
+Comprehensive tests with fault injection were added. The major one is
[TestKeyLifecycleService](https://github.com/apache/ozone/blob/HDDS-8342/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/service/TestKeyLifecycleService.java).
+
+## 6. Support of containers / Kubernetes
+
+No addition. No change in existing support.
+
+## 7. Coverage / Code quality
+
+[New Code
Coverage](https://sonarcloud.io/summary/new_code?id=hadoop-ozone&branch=HDDS-8342)
for S3 Lifecycle Configuration - Object Expiration (HDDS-8342) is 80.54% and
[Overall Code
Coverage](https://sonarcloud.io/summary/overall?id=hadoop-ozone&branch=HDDS-8342)
is 78.4 .
+[Overall Code
Coverage](https://sonarcloud.io/summary/overall?id=hadoop-ozone&branch=master)
for master is 78.2.
+
+## 8. Build time
+
+[Build time for the latest
commit](https://github.com/ChenSammi/ozone/actions/runs/29250637888/job/86975578390)
from HDDS-8342 Branch is 10m 12s.
+[Build time for the latest
commit](https://github.com/apache/ozone/actions/runs/29310061591/job/87011782215)
from the master branch is 10m 21s.
+
+## 9. Possible incompatible changes/used feature flag
+
+A global enable/disable switch for this feature is added in HDDS-12780.
[Implement the Lifecycle
Service](https://issues.apache.org/jira/browse/HDDS-12780).
+
+To enable the feature, the following configs need to be added to OM
ozone-site.xml, and set the value to "true"
+
+```xml
+<property>
+ <name>ozone.lifecycle.service.enabled</name>
+ <value>false</value>
+ <tag>OZONE</tag>
+ <description>It specifies whether to enable lifecycle management
service. By default, it is disabled. </description>
+</property>
+```
+
+A new table with "lifecycleConfigurationTable" is introduced in OM to persist
bucket's lifecycle configurations, as a configuration can have up to 1000 rules
per AWS S3 document, so including the lifecycle configuration in bucketInfo
instead of a new table is considered but not chosen finally. New table
"lifecycleScanStateTable" is introduced to save the checkpoint of each bucket's
scan, so the scan can be resumed when there is leader transfer or OM restart.
+
+A OM feature with name S3_LIFECYCLE_SUPPORT is introduced in OM, to reject
Lifecycle configuration operations(put/get/delete) call if the feature is not
finalized yet.
+
+## 10. Third-party dependencies/License changes
+
+There are no third party dependencies introduced by this feature.
+
+## 11. Performance
+
+The major performance consideration based on real production environment
experience is it's not recommended to delete expired keys too quickly, other
wise the RocksDB access latency can increase due to too many tombstone not
compacted. Property "ozone.lifecycle.service.delete.batch-size" with default
value 1000 is introduced to control the batch deletion size, so deletion will
not happen too fast.
+
+## 12. Security considerations
+
+The API to set/delete bucket's Lifecycle configuration requires the caller is
the owner of bucket for native ACL, and bucket write permission for Ranger.
+
+The CLI to pause/resume/get Lifecycle service status, is only accessible to
the OM admins.
+
+Besides this, there are no other security implications of this feature.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]