Siyao Meng created HDDS-16060:
---------------------------------

             Summary: Prevent snapshots and Object Versioning from coexisting 
on the same bucket until fixed
                 Key: HDDS-16060
                 URL: https://issues.apache.org/jira/browse/HDDS-16060
             Project: Apache Ozone
          Issue Type: Sub-task
            Reporter: Siyao Meng


HDDS-15728 defers snapshot interaction beyond the first implementation phase 
and states that Object Versioning and Ozone Snapshots are not expected to be 
used together on the same bucket until that work lands.

This restriction is currently documented but not enforced.
h2. Proposal

Until version-aware snapshot lookup and reclamation (GC) are implemented, OM 
shall enforce mutual exclusion between snapshots and Object Versioning for a 
bucket (and optionally add a dev flag to allow it solely for testing):
 * Reject CreateSnapshot when the resolved source bucket has 
BucketVersioningStatus ENABLED or SUSPENDED.
 * Reject a transition from UNVERSIONED into a versioned state when the 
bucket's snapshot path chain is non-empty.
 * Reject SUSPENDED -> ENABLED while snapshots remain.
 * Allow ENABLED -> SUSPENDED for an already inconsistent mixed-state bucket so 
that new version creation can be stopped.
 * Treat SNAPSHOT_DELETED snapshots that have not yet been purged from the path 
chain as present.
 * Resolve linked buckets and apply the check to the source bucket.
 * If OM encounters a pre-existing mixed state, snapshot-aware key reclamation 
must fail closed: retain the deleted version and do not send its blocks to SCM.
 * Once the final snapshot is purged from the path chain, versioning may be 
enabled/resumed and retained deletion work may proceed.

Return NOT_SUPPORTED_OPERATION with a message explaining that snapshot/Object 
Versioning coexistence is not supported until snapshot-aware version 
reclamation is available.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to