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]