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

refactor(arbitrator): Simplify arbitration participant lock #11525

Closed

Conversation

tanjialiang
Copy link
Contributor

Simplify the ArbitrationTimedLock and MemoryArbitrationContext. Do not carry ArbitrationOperation in thread_local context anymore. ArbitrationTimedLock only deals with timed lock and custom arbitration throwing logic.

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Nov 13, 2024
Copy link

netlify bot commented Nov 13, 2024

Deploy Preview for meta-velox canceled.

Name Link
🔨 Latest commit 0bfcb7f
🔍 Latest deploy log https://app.netlify.com/sites/meta-velox/deploys/673797a2b8f211000862f9d6

Copy link
Contributor

@xiaoxmeng xiaoxmeng left a comment

Choose a reason for hiding this comment

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

@tanjialiang LGTM and some comments to extend existing participant APIs. thanks!

@@ -320,7 +320,7 @@ uint64_t ArbitrationParticipant::shrinkLocked(bool reclaimAll) {

uint64_t ArbitrationParticipant::abort(
const std::exception_ptr& error) noexcept {
ArbitrationOperationTimedLock l(reclaimMutex_);
std::lock_guard<std::timed_mutex> l(reclaimMutex_);
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we extend to take time for abort? Thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

abort path is used by global arbitration. We currently don't have timeout information to pass for global arbitration because it does not belong to any requestor. The timeout protection is performed already when waiting for global arbitration.

velox/common/memory/ArbitrationParticipant.h Outdated Show resolved Hide resolved
velox/common/memory/ArbitrationParticipant.h Outdated Show resolved Hide resolved
velox/common/memory/ArbitrationParticipant.cpp Outdated Show resolved Hide resolved
@facebook-github-bot
Copy link
Contributor

@tanjialiang has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

Copy link
Contributor

@xiaoxmeng xiaoxmeng left a comment

Choose a reason for hiding this comment

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

@tanjialiang LGTM. Thanks!

@facebook-github-bot
Copy link
Contributor

@tanjialiang has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

1 similar comment
@facebook-github-bot
Copy link
Contributor

@tanjialiang has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@facebook-github-bot
Copy link
Contributor

@tanjialiang has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@facebook-github-bot
Copy link
Contributor

@tanjialiang has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@tanjialiang tanjialiang changed the title Simplify arbitration participant lock refactor [arbitrator] simplify arbitration participant lock Nov 15, 2024
@tanjialiang tanjialiang force-pushed the simplify_timelock branch 2 times, most recently from 5b5ef46 to 2579426 Compare November 15, 2024 18:44
@facebook-github-bot
Copy link
Contributor

@tanjialiang has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@facebook-github-bot
Copy link
Contributor

@tanjialiang has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@tanjialiang tanjialiang changed the title refactor [arbitrator] simplify arbitration participant lock refactor(arbitrator): simplify arbitration participant lock Nov 15, 2024
@tanjialiang tanjialiang changed the title refactor(arbitrator): simplify arbitration participant lock refactor(arbitrator): Simplify arbitration participant lock Nov 15, 2024
@facebook-github-bot
Copy link
Contributor

@tanjialiang has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@facebook-github-bot
Copy link
Contributor

@tanjialiang merged this pull request in 3265e79.

Copy link

Conbench analyzed the 1 benchmark run on commit 3265e791.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

athmaja-n pushed a commit to athmaja-n/velox that referenced this pull request Jan 10, 2025
…incubator#11525)

Summary:
Simplify the ArbitrationTimedLock and MemoryArbitrationContext. Do not carry ArbitrationOperation in thread_local context anymore. ArbitrationTimedLock only deals with timed lock and custom arbitration throwing logic.

Pull Request resolved: facebookincubator#11525

Reviewed By: xiaoxmeng

Differential Revision: D65899323

Pulled By: tanjialiang

fbshipit-source-id: 3907603132f6d4b70a443359887466ec82a69a65
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants