-
Notifications
You must be signed in to change notification settings - Fork 0
Comparing changes
Open a pull request
base repository: saraWebdev/npgsql
base: dev
head repository: saraWebdev/npgsql
compare: pool-contention
- 15 commits
- 6 files changed
- 2 contributors
Commits on Aug 27, 2019
-
Don't force the full continuation to be pool dispatched, just user co…
…de (via Task.Yield) Tcs now doesn't force continuation to be dispatched to the pool so we can execute our pool waiting code inline on the release thread, including the state update
Configuration menu - View commit details
-
Copy full SHA for 5bef866 - Browse repository at this point
Copy the full SHA 5bef866View commit details -
Remove state.Waiting entirely, rely on concurrent queue and our state…
….Idle read after enqueue to prevent waiting threads from deadlocking or timing out
Configuration menu - View commit details
-
Copy full SHA for a34a8d4 - Browse repository at this point
Copy the full SHA a34a8d4View commit details -
Convert state.Idle and Busy to an int so we can replace all independe…
…nt (only Idle OR Busy) CAS loops for straight XADD (Decrement/Increment) Interesting read about CAS vs XADD https://blogs.oracle.com/dave/atomic-fetch-and-add-vs-compare-and-swap
Configuration menu - View commit details
-
Copy full SHA for 2c4e27c - Browse repository at this point
Copy the full SHA 2c4e27cView commit details -
Fixes todo around unblocking waiters now that may happen more often w…
…ith state.Waiting being replaced by cancelled TaskCompletionSources
Configuration menu - View commit details
-
Copy full SHA for c483773 - Browse repository at this point
Copy the full SHA c483773View commit details -
Implementation of fixes and new design, there are no CAS loops anymor…
…e as there isn't a single data dependency (combined read) that needed it left
Configuration menu - View commit details
-
Copy full SHA for cab9c0c - Browse repository at this point
Copy the full SHA cab9c0cView commit details -
Optimize releases by assigning connectors a fixed pool index for thei…
…r entire lifetime
Configuration menu - View commit details
-
Copy full SHA for 1f438a4 - Browse repository at this point
Copy the full SHA 1f438a4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5a14410 - Browse repository at this point
Copy the full SHA 5a14410View commit details -
Revert "Don't force the full continuation to be pool dispatched, just…
… user code (via Task.Yield)" as there's zero pool state changing before we move to user code
Configuration menu - View commit details
-
Copy full SHA for 47337be - Browse repository at this point
Copy the full SHA 47337beView commit details -
Improve readability of Release by moving the loop closer to its user,…
… making it clear no continue is to be called after any Increment/Decrement is done
Configuration menu - View commit details
-
Copy full SHA for 0d0d35e - Browse repository at this point
Copy the full SHA 0d0d35eView commit details -
Removes Busy entirely and remove random idle scanning as we have rand…
…om releasing, brings back bounds check elimination There's some false sharing during connector open and release/allocate but during steady state fastallocate/release that's not relevant at all. Not going to add padding for it.
Configuration menu - View commit details
-
Copy full SHA for ca2bdda - Browse repository at this point
Copy the full SHA ca2bddaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 059e747 - Browse repository at this point
Copy the full SHA 059e747View commit details -
Configuration menu - View commit details
-
Copy full SHA for a27e5fd - Browse repository at this point
Copy the full SHA a27e5fdView commit details -
Configuration menu - View commit details
-
Copy full SHA for c65d8ca - Browse repository at this point
Copy the full SHA c65d8caView commit details -
Addresses some nits Moved Busy read back into PoolState for an atomic read Introduced CAS loop for Close when closing Idle connectors Changed pruning Timer logic to be non allocating Inverted TrySetCanceled branch for better readability Introduced Assert for checking whether a connector got a pool index
Configuration menu - View commit details
-
Copy full SHA for d3422b1 - Browse repository at this point
Copy the full SHA d3422b1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 55b2df4 - Browse repository at this point
Copy the full SHA 55b2df4View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff dev...pool-contention