Skip to content

HDDS-15099. [Docs] Implementation of Write Operations - #579

Merged
jojochuang merged 5 commits into
apache:masterfrom
cychiu8:HDDS-15099
Oct 19, 2026
Merged

jojochuang merged 5 commits into
apache:masterfrom
cychiu8:HDDS-15099

Conversation

@cychiu8

@cychiu8 cychiu8 commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

Provide the document for every part of a write request from beginning to end.

What is the link to the Apache Jira?

https://issues.apache.org/jira/browse/HDDS-15099

How was this patch tested?

Reviewed the rendered page in the local preview.

CI passed: https://github.com/cychiu8/ozone-site/actions/runs/39021800409

@cychiu8

cychiu8 commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

@jojochuang , @chungen0126 Here’s the doc for "Implementation of Write Operations". I’d appreciate your review whenever you have time. Thank you!

@jojochuang jojochuang left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — clear reservation → data transfer → commit story, HA preExecute vs validateAndUpdateCache split, quota check/charge, Ratis vs EC, and open-key cleanup. Nice upgrade from the old draft.

Optional follow-ups (non-blocking):

  1. ACL types per RPC — Document explicitly: CreateKey → CREATE (resolveBucketAndCheckKeyAcls); AllocateBlock and CommitKey → WRITE on the open key + client id (resolveBucketAndCheckOpenKeyAcls).
  2. Authorizer — One line that policy checks go through the configured OM authorizer (Native ACLs or Ranger), not only the internal OzoneAclUtils volume/bucket rules.
  3. Leader preExecute ordering — Note that SCM block allocation (and tokens) on the leader can run before ACL in preExecute; deterministic validation is in validateAndUpdateCache on all OMs.
  4. Zero-length keys — If dataSize is unset or ≤ 0, create skips SCM block allocation.
  5. Open-key cleanup — Besides ozone.om.open.key.expire.threshold (default 7d), mention lease/hsync handling (leaseThreshold in OpenKeyCleanupService), not creation time alone.
  6. Quota nuance — FSO may increment namespace for missing parent directories at create; byte charge for the key still aligns with commit (already mostly covered).
  7. Summary table — Phase 1 could footnote FSO (openFileTable / fileTable) vs OBS/LEGACY table names.
  8. Cross-link — Link EC section to Erasure Coding.
  9. Scope — Short paragraph: multipart upload, S3 Gateway (same OM RPCs), Ratis streaming, and pipeline failover/exclude lists are out of scope or defer to other pages.
  10. HSync — When 04-hsync.md is completed, link from the “invisible until commit” discussion.
  11. Nit — Formatting: space before (default 7d) on the open-key threshold property.

Happy to help on a small follow-up doc PR if useful.

@jojochuang
jojochuang merged commit a089278 into apache:master Oct 19, 2026
12 checks passed
@jojochuang

Copy link
Copy Markdown
Contributor

Merged. Thanks @cychiu8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants