Skip to content

DAOS-19210 dfs: show progressive-layout info in daos cont query and f…#18632

Draft
mchaarawi wants to merge 1 commit into
feature/dfs_prog_layoutfrom
mschaara/dfs_pl_tool
Draft

DAOS-19210 dfs: show progressive-layout info in daos cont query and f…#18632
mchaarawi wants to merge 1 commit into
feature/dfs_prog_layoutfrom
mschaara/dfs_pl_tool

Conversation

@mchaarawi

Copy link
Copy Markdown
Contributor

…s get-attr

The daos tool previously reported only a single file object class and did not show PL details, so daos cont query and daos fs get-attr gave an incomplete picture of PL files/containers.

Generalize the DFS query/info API to a head plus an ordered array of tail segments so it also covers a future head + N tails:

  • Add dfs_pl_seg_t {oclass, split_off, oid} and DFS_PL_MAX_SEGMENTS.
  • dfs_attr_t: da_file_oclass_id is the head class in the PL case; add da_file_pl_nr + da_file_pl_segs[] for the tail segment(s). Populated by dfs_query().
  • dfs_obj_info_t: add doi_pl_nr + doi_pl_segs[]; drop the single-tail fields. Populated by dfs_obj_get_info() for files (real tail oids) and for directories (file-creation template, nil oids).
  • Refactor file_oclasses() to take a parent oclass and add dfs_default_file_pl() so the container/dir default layout can be resolved without an open file object.

daos tool:

  • cont query: print File Head/Tail Object Class and Split Offset per tail segment when PL applies (File Object Class alone otherwise).
  • fs get-attr on a file: print Head/Tail OID, Head/Tail Object Class, and Split Offset; on a directory: print the file-creation head/tail classes and split offset. JSON output extended with a tails/pl array.
  • Plumb the new fields through POSIXAttributes and the libdfs/libdaos bindings and stubs.

Update the DFS unit test to the new doi_pl_nr/doi_pl_segs fields.

Steps for the author:

  • Commit message follows the guidelines.
  • Appropriate Features or Test-tag pragmas were used.
  • Appropriate Functional Test Stages were run.
  • At least two positive code reviews including at least one code owner from each category referenced in the PR.
  • Testing is complete. If necessary, forced-landing label added and a reason added in a comment.

After all prior steps are complete:

  • Gatekeeper requested (daos-gatekeeper added as a reviewer).

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Ticket title is 'update daos tool to return PL oclasses and not just the head'
Status is 'In Progress'
https://daosio.atlassian.net/browse/DAOS-19210

@mchaarawi mchaarawi force-pushed the mschaara/dfs_pl_tool branch 3 times, most recently from 8602e6d to 5661847 Compare July 8, 2026 21:22
@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Functional Hardware Large MD on SSD completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-18632/4/testReport/

…s get-attr

The daos tool previously reported only a single file object class and did
not show PL details, so `daos cont query` and `daos fs get-attr` gave an
incomplete picture of PL files/containers.

Generalize the DFS query/info API to a head plus an ordered array of tail
segments so it also covers a future head + N tails:
- Add dfs_pl_seg_t {oclass, split_off, oid} and DFS_PL_MAX_SEGMENTS.
- dfs_attr_t: da_file_oclass_id is the head class in the PL case; add
  da_file_pl_nr + da_file_pl_segs[] for the tail segment(s). Populated by
  dfs_query().
- dfs_obj_info_t: add doi_pl_nr + doi_pl_segs[]; drop the single-tail
  fields. Populated by dfs_obj_get_info() for files (real tail oids) and
  for directories (file-creation template, nil oids).
- Refactor file_oclasses() to take a parent oclass and add
  dfs_default_file_pl() so the container/dir default layout can be resolved
  without an open file object.

daos tool:
- cont query: print File Head/Tail Object Class and Split Offset per tail
  segment when PL applies (File Object Class alone otherwise).
- fs get-attr on a file: print Head/Tail OID, Head/Tail Object Class, and
  Split Offset; on a directory: print the file-creation head/tail classes
  and split offset. JSON output extended with a tails/pl array.
- Plumb the new fields through POSIXAttributes and the libdfs/libdaos
  bindings and stubs.

Update the DFS unit test to the new doi_pl_nr/doi_pl_segs fields.

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@hpe.com>
@mchaarawi mchaarawi force-pushed the mschaara/dfs_pl_tool branch from 5661847 to 6523d6b Compare July 9, 2026 16:10
@daosbuild3

Copy link
Copy Markdown
Collaborator

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants