-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
kvflowcontroller: mutex contention #105508
Labels
A-admission-control
C-performance
Perf of queries or internals. Solution not expected to change functional behavior.
T-kv
KV Team
Comments
erikgrinaker
added
C-performance
Perf of queries or internals. Solution not expected to change functional behavior.
T-kv
KV Team
labels
Jun 24, 2023
15 tasks
14 tasks
irfansharif
added a commit
to irfansharif/cockroach
that referenced
this issue
Jul 8, 2023
Fixes cockroachdb#105508. Release note: None
Clawed back the throughput loss with #106466. |
irfansharif
added a commit
to irfansharif/cockroach
that referenced
this issue
Aug 21, 2023
Fixes cockroachdb#105508. Under kv0/enc=false/nodes=3/cpu=96 we observed significant mutex contention on kvflowcontroller.Controller.mu. We were using a single mutex to adjust flow tokens across all replication streams. There's a natural sharding available here - by replication stream - that eliminates the contention and fixes the throughput drop. The kv0 test surfaced other performance optimizations (mutex contention, allocated objects, etc.) that we'll address in subsequent PRs. Release note: None
craig bot
pushed a commit
that referenced
this issue
Aug 23, 2023
108444: plpgsql: add support for WHILE loops r=mgartner a=mgartner #### plpgsql/parser: parse WHILE loops Release note: None #### opt: support PL/pgSQL WHILE loops This commit adds support for PL/pgSQL `WHILE` loops. A `WHILE` loop is syntactic sugar for a `LOOP` with that exits conditionally, so we build a `WHILE` loop with a simple transformation: WHILE [cond] LOOP [body]; END LOOP; => LOOP IF [cond] THEN [body]; ELSE EXIT; END IF; END LOOP; This transformation allows us to avoid adding complicated logic specifically for `WHILE` loops and instead rely on the existing implementations for `LOOP` and `IF/ELSE` statements. Epic: CRDB-799 Release note: None #### opt: add unimplemented errors for EXIT/CONTINUE WHEN Release note: None 109170: kvflowcontroller: eliminate mutex contention r=irfansharif a=irfansharif Fixes #105508. Under kv0/enc=false/nodes=3/cpu=96 we observed significant mutex contention on kvflowcontroller.Controller.mu. We were using a single mutex to adjust flow tokens across all replication streams. There's a natural sharding available here - by replication stream - that eliminates the contention and fixes the throughput drop. The kv0 test surfaced other performance optimizations (mutex contention, allocated objects, etc.) that we'll address in subsequent PRs. Release note: None Co-authored-by: Marcus Gartner <[email protected]> Co-authored-by: irfan sharif <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-admission-control
C-performance
Perf of queries or internals. Solution not expected to change functional behavior.
T-kv
KV Team
kv0/enc=false/nodes=3/cpu=96
is showing significant mutex contention onkvflowcontroller.Controller.mu
:This is possibly the cause of a significant performance regression on this benchmark:
Jira issue: CRDB-29088
The text was updated successfully, but these errors were encountered: