vos: add per-object aggregation API (vos_aggregate_obj)#18206
Draft
Copilot wants to merge 2 commits into
Draft
Conversation
Agent-Logs-Url: https://github.com/daos-stack/daos/sessions/c8693980-00e5-4ce0-8558-20527af59c4c Co-authored-by: gnailzenh <7268050+gnailzenh@users.noreply.github.com>
Copilot created this pull request from a session on behalf of
gnailzenh
May 9, 2026 09:48
View session
Agent-Logs-Url: https://github.com/daos-stack/daos/sessions/ab308715-1539-41a9-b780-c3b9dbde86c8 Co-authored-by: gnailzenh <7268050+gnailzenh@users.noreply.github.com>
Collaborator
|
Test stage Functional on EL 9 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18206/2/execution/node/1095/log |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reimplement VOS aggregation so that the production driver iterates objects from outside VOS and dispatches per-OID aggregation through
vos_aggregate_obj(). This unblocks a future change that places each per-OID call into its own ULT.vos_aggregate_obj()(already merged earlier on this branch)vos_aggregate_obj()withunsigned int *out_flagsso callers can detect uncommitted-DTX (VOS_AGG_OUT_IN_PROGRESS) and skip advancingcd_haevos_aggregate_advance_hae()so external drivers can monotonically advance the container HAE after a clean per-OID fan-outcont_vos_aggregate_cb()incontainer/srv_target.c:ci_hae,ci_agg_write)ci_agg_write <= filter_epochvos_iterate(VOS_ITER_OBJ, recursive=false)with a filter callback that reusesvos_iter_desc_t::id_agg_write/id_parent_punchfor per-OID skipvos_aggregate_obj()per OID; suppress-DER_CSUMper-OID (matches legacy semantics)vos_aggregate_advance_hae()only when noVOS_AGG_OUT_IN_PROGRESSwas reportedvos_aggregate_obj()to match new signature; smoke test now also exercisesvos_aggregate_advance_hae()Existing callers of legacy
vos_aggregate()(RDB, VOS unit tests,vos_perf) are untouched and continue to use the convenience wrapper.