Skip to content

Conversation

@arybczak
Copy link
Contributor

MVar-based pool seems to exhibit horrible lock contention in specific workloads (especially with a single stripe), let's try a lockless implementation with STM.

Putting resources back doesn't block now so note "signal uninterruptible" no longer applies.

@arybczak arybczak force-pushed the lockless branch 2 times, most recently from b067b6a to e9933c6 Compare May 11, 2025 23:17
MVar-based pool seems to exhibit horrible lock contention in specific workloads
(especially with a single stripe), let's try a lockless implementation with STM.

Putting resources back doesn't block now so note "signal uninterruptible" no
longer applies.
@arybczak arybczak marked this pull request as ready for review May 12, 2025 02:28
Copy link

@Raveline Raveline left a comment

Choose a reason for hiding this comment

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

Looks good to me. 🤞 (Hopefully, I didn't miss anything)

Copy link

@bugthunk bugthunk left a comment

Choose a reason for hiding this comment

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

My review isn't worth much ATM (I don't understand the first MVar-based pooler to begin with and my STM is a bit rusty), but you have my go-ahead to put it on staging.

@arybczak arybczak merged commit 79dfee0 into master May 12, 2025
9 checks passed
@arybczak arybczak deleted the lockless branch May 12, 2025 10:44
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.

4 participants