You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Chu Cheng Li (Jira)" <ji...@apache.org> on 2026/05/06 09:51:00 UTC
[jira] [Created] (HDDS-15184) Atomic Create-If-Absent Should Use 0 for Generation Match
Chu Cheng Li created HDDS-15184:
-----------------------------------
Summary: Atomic Create-If-Absent Should Use 0 for Generation Match
Key: HDDS-15184
URL: https://issues.apache.org/jira/browse/HDDS-15184
Project: Apache Ozone
Issue Type: Sub-task
Components: OM, s3gateway
Reporter: Chu Cheng Li
Assignee: Chu Cheng Li
We currently use an expected data generation of -1 to represent “create if absent”. In contrast, GCS uses {{--if-generation-match=0}} for its create-if-absent semantics.
One potential concern is whether the first object we create in Ozone could have a generation/update ID of 0, which would conflict with this encoding. In practice, this does not happen: committed keys in Ozone derive their {{updateID}} from the Ratis transaction index at commit time ({{{}OMKeyCommitRequest.java{}}}, around line 344). The very first Ratis index (0) is reserved for startup/configuration log state before any client writes, so actual OM write requests always receive positive indices. As a result, committed keys will never have {{{}updateID == 0{}}}, and using 0 to encode “absent” is safe.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org