Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DAOS-16469 dtx: optimize DTX CoS cache #15089

Merged
merged 1 commit into from
Oct 17, 2024
Merged

Conversation

Nasf-Fan
Copy link
Contributor

@Nasf-Fan Nasf-Fan commented Sep 6, 2024

If there are a lot of committable DTX entries in DTX CoS cache, then it may be inefficient to locate the DTX entry in CoS cache with given oid + dkey_hash, that may happen under the case of that DTX batched commit is blocked (such as because of network trouble) as to trigger DTX refresh (for DTX cleanup) on other related engines. If that happened, it will increase the system load on such engine and slow down DTX commit further more. The patch reduces unnecessary search operation inside CoS cache.

Other changes:

  1. Metrics (io/dtx/async_cmt_lat/tgt_id) for DTX asynchronously commit latency (with unit ms).

  2. Fix a bug in sched_ult2xs() with multiple numa sockets for DSS_XS_OFFLOAD case.

  3. Delay commit (or abort) collective DTX on the leader target to handle resent race.

  4. Avoid blocking dtx_req_wait() if chore failed to send out some DTX RPC.

  5. Some cleanup for error handling.

Before requesting gatekeeper:

  • Two review approvals and any prior change requests have been resolved.
  • Testing is complete and all tests passed or there is a reason documented in the PR why it should be force landed and forced-landing tag is set.
  • Features: (or Test-tag*) commit pragma was used or there is a reason documented that there are no appropriate tags for this PR.
  • Commit messages follows the guidelines outlined here.
  • Any tests skipped by the ticket being addressed have been run and passed in the PR.

Gatekeeper:

  • You are the appropriate gatekeeper to be landing the patch.
  • The PR has 2 reviews by people familiar with the code, including appropriate owners.
  • Githooks were used. If not, request that user install them and check copyright dates.
  • Checkpatch issues are resolved. Pay particular attention to ones that will show up on future PRs.
  • All builds have passed. Check non-required builds for any new compiler warnings.
  • Sufficient testing is done. Check feature pragmas and test tags and that tests skipped for the ticket are run and now pass with the changes.
  • If applicable, the PR has addressed any potential version compatibility issues.
  • Check the target branch. If it is master branch, should the PR go to a feature branch? If it is a release branch, does it have merge approval in the JIRA ticket.
  • Extra checks if forced landing is requested
    • Review comments are sufficiently resolved, particularly by prior reviewers that requested changes.
    • No new NLT or valgrind warnings. Check the classic view.
    • Quick-build or Quick-functional is not used.
  • Fix the commit message upon landing. Check the standard here. Edit it to create a single commit. If necessary, ask submitter for a new summary.

Copy link

github-actions bot commented Sep 6, 2024

Ticket title is 'IOR Easy performance low with EC_16P2GX'
Status is 'In Progress'
Labels: 'daos_ecb_scale,pre_acceptance_issues'
https://daosio.atlassian.net/browse/DAOS-16469

@daosbuild1
Copy link
Collaborator

Test stage Functional on EL 8.8 completed with status UNSTABLE. https://build.hpdd.intel.com/job/daos-stack/job/daos//view/change-requests/job/PR-15089/1/testReport/

@Nasf-Fan Nasf-Fan force-pushed the Nasf-Fan/DAOS-16469_3 branch from 41685c0 to 4e2b075 Compare September 7, 2024 01:54
@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Medium Verbs Provider completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15089/2/execution/node/1462/log

@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Medium completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15089/2/execution/node/1416/log

@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Large completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15089/2/execution/node/1608/log

@Nasf-Fan Nasf-Fan force-pushed the Nasf-Fan/DAOS-16469_3 branch 2 times, most recently from 853a223 to 41ffc35 Compare September 9, 2024 06:37
@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Large completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15089/4/execution/node/1509/log

@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Medium Verbs Provider completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15089/4/execution/node/1477/log

@Nasf-Fan Nasf-Fan force-pushed the Nasf-Fan/DAOS-16469_3 branch from 41ffc35 to 707064e Compare September 10, 2024 03:01
@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Medium Verbs Provider completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15089/5/execution/node/1462/log

@Nasf-Fan Nasf-Fan force-pushed the Nasf-Fan/DAOS-16469_3 branch 2 times, most recently from a752a00 to 00b6c56 Compare September 11, 2024 01:40
@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Medium Verbs Provider completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15089/7/execution/node/1551/log

@Nasf-Fan Nasf-Fan force-pushed the Nasf-Fan/DAOS-16469_3 branch 2 times, most recently from b2e9019 to 6d792d6 Compare September 12, 2024 06:38
@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Medium Verbs Provider completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15089/9/execution/node/1492/log

@Nasf-Fan Nasf-Fan force-pushed the Nasf-Fan/DAOS-16469_3 branch from 6d792d6 to 7991462 Compare September 13, 2024 04:07
@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Medium Verbs Provider completed with status FAILURE. https://build.hpdd.intel.com/job/daos-stack/job/daos/job/PR-15089/10/display/redirect

@Nasf-Fan Nasf-Fan force-pushed the Nasf-Fan/DAOS-16469_3 branch from 7991462 to 2f479fb Compare September 16, 2024 01:46
@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Medium Verbs Provider completed with status FAILURE. https://build.hpdd.intel.com/job/daos-stack/job/daos/job/PR-15089/11/display/redirect

@Nasf-Fan Nasf-Fan force-pushed the Nasf-Fan/DAOS-16469_3 branch from 2f479fb to 5825c3c Compare September 18, 2024 02:01
@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Medium Verbs Provider completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15089/12/execution/node/1508/log

@Nasf-Fan Nasf-Fan force-pushed the Nasf-Fan/DAOS-16469_3 branch from 5825c3c to ac36370 Compare September 18, 2024 16:25
@daosbuild1
Copy link
Collaborator

Test stage Functional Hardware Medium Verbs Provider completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-15089/13/execution/node/1492/log

If there are a lot of committable DTX entries in DTX CoS cache,
then it may be inefficient to locate the DTX entry in CoS cache
with given oid + dkey_hash, that may happen under the case of
that DTX batched commit is blocked (such as because of network
trouble) as to trigger DTX refresh (for DTX cleanup) on other
related engines. If that happened, it will increase the system
load on such engine and slow down DTX commit further more. The
patch reduces unnecessary search operation inside CoS cache.

Other changes:

1. Metrics (io/dtx/async_cmt_lat/tgt_id) for DTX asynchronously
   commit latency (with unit ms).

2. Fix a bug in sched_ult2xs() with multiple numa sockets for
   DSS_XS_OFFLOAD case.

3. Delay commit (or abort) collective DTX on the leader target
   to handle resent race.

4. Avoid blocking dtx_req_wait() if chore failed to send out
   some DTX RPC.

5. Some cleanup for error handling.

Signed-off-by: Fan Yong <[email protected]>
@Nasf-Fan Nasf-Fan force-pushed the Nasf-Fan/DAOS-16469_3 branch from ac36370 to 8845d0e Compare September 19, 2024 07:31
@Nasf-Fan Nasf-Fan marked this pull request as ready for review September 20, 2024 02:25
@Nasf-Fan Nasf-Fan requested a review from a team as a code owner September 20, 2024 02:25
@Nasf-Fan
Copy link
Contributor Author

Ping reviewers, thanks!

@@ -1487,15 +1485,9 @@ dtx_leader_end(struct dtx_leader_handle *dlh, struct ds_cont_hdl *coh, int resul
/* If piggyback DTX has been done everywhere, then need to handle CoS cache.
* It is harmless to keep some partially committed DTX entries in CoS cache.
*/
if (result == 0 && dth->dth_cos_done) {
Copy link
Contributor

Choose a reason for hiding this comment

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

just confirm why this branch removed? thx

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The condition will checked via the parameter for dtx_cos_put_piggyback().

@Nasf-Fan Nasf-Fan requested review from a team and removed request for a team September 25, 2024 14:36
Copy link
Contributor

@daltonbohning daltonbohning left a comment

Choose a reason for hiding this comment

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

ftest LGTM

@Nasf-Fan Nasf-Fan requested a review from a team October 11, 2024 05:43
@Nasf-Fan
Copy link
Contributor Author

Ping @daos-stack/daos-gatekeeper , thanks!

@gnailzenh gnailzenh merged commit e28eaa2 into master Oct 17, 2024
54 of 55 checks passed
@gnailzenh gnailzenh deleted the Nasf-Fan/DAOS-16469_3 branch October 17, 2024 12:08
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.

6 participants