-
Notifications
You must be signed in to change notification settings - Fork 10
agents: optimize span collector message sending #287
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
Conversation
|
For a nicer visualization: |
|
Also for max throughput we have gains: reportwrk.html |
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
|
""" WalkthroughThe changes introduce a new boolean member variable, Changes
Poem
Tip ⚡️ Faster reviews with caching
Enjoy the performance boost—your workflow just got faster. 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
⏰ Context from checks skipped due to timeout of 90000ms (8)
✨ Finishing Touches
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
04c3c34 to
7c3764a
Compare
7c3764a to
a647f0f
Compare
a647f0f to
d1d3eed
Compare
d1d3eed to
a648ed7
Compare
Add state tracking to prevent excessive `uv_async_t::send()` calls. Benchmark results for (40k and 50k): ``` === Benchmark Summary === Benchmark Type: wrk2 Old Version: ./nsolid_baseline New Version: ./nsolid_span_collector Iterations: 50 Connections: 10 Duration: 60s Rate: 40k === Latency Percentile Distribution === +------------+------------------+------------------+------------+---------+--------------+ | Percentile | Old Version (ms) | New Version (ms) | Difference | p-value | Significance | +------------+------------------+------------------+------------+---------+--------------+ | P50 | 1.09 | 1.10 | +0.40% | 0.00 | *** | | P75 | 1.67 | 1.67 | +0.03% | 0.73 | | | P90 | 2.22 | 2.22 | -0.23% | 0.01 | ** | | P95 | 2.54 | 2.53 | -0.52% | 0.00 | *** | | P99 | 3.16 | 3.10 | -1.82% | 0.00 | *** | | P99.9 | 4.98 | 4.36 | -12.45% | 0.01 | *** | | P99.99 | 9.97 | 8.96 | -10.09% | 0.13 | | | P99.999 | 12.91 | 11.77 | -8.88% | 0.15 | | +------------+------------------+------------------+------------+---------+--------------+ ``` ``` === Benchmark Summary === Benchmark Type: wrk2 Old Version: ./nsolid_baseline New Version: ./nsolid_span_collector Iterations: 50 Connections: 10 Duration: 60s Rate: 50k === Latency Percentile Distribution === +------------+------------------+------------------+------------+---------+--------------+ | Percentile | Old Version (ms) | New Version (ms) | Difference | p-value | Significance | +------------+------------------+------------------+------------+---------+--------------+ | P50 | 0.98 | 0.95 | -3.76% | 0.16 | | | P75 | 1.78 | 1.54 | -13.31% | 0.23 | | | P90 | 3.36 | 2.49 | -25.71% | 0.18 | | | P95 | 5.37 | 3.51 | -34.60% | 0.09 | * | | P99 | 18.08 | 10.66 | -41.02% | 0.01 | *** | | P99.9 | 50.91 | 30.78 | -39.54% | 0.01 | *** | | P99.99 | 72.19 | 47.71 | -33.91% | 0.01 | *** | | P99.999 | 75.98 | 51.69 | -31.97% | 0.01 | *** | +------------+------------------+------------------+------------+---------+--------------+ ``` TL;DR The new version demonstrates a clear improvement in latency performance, particularly for edge cases and high-load scenarios represented by the tail latencies. This suggests better handling of resource-intensive operations or improved performance under stress conditions.
a648ed7 to
f0389a7
Compare
Add state tracking to prevent excessive `uv_async_t::send()` calls. Benchmark results for (40k and 50k): ``` === Benchmark Summary === Benchmark Type: wrk2 Old Version: ./nsolid_baseline New Version: ./nsolid_span_collector Iterations: 50 Connections: 10 Duration: 60s Rate: 40k === Latency Percentile Distribution === +------------+------------------+------------------+------------+---------+--------------+ | Percentile | Old Version (ms) | New Version (ms) | Difference | p-value | Significance | +------------+------------------+------------------+------------+---------+--------------+ | P50 | 1.09 | 1.10 | +0.40% | 0.00 | *** | | P75 | 1.67 | 1.67 | +0.03% | 0.73 | | | P90 | 2.22 | 2.22 | -0.23% | 0.01 | ** | | P95 | 2.54 | 2.53 | -0.52% | 0.00 | *** | | P99 | 3.16 | 3.10 | -1.82% | 0.00 | *** | | P99.9 | 4.98 | 4.36 | -12.45% | 0.01 | *** | | P99.99 | 9.97 | 8.96 | -10.09% | 0.13 | | | P99.999 | 12.91 | 11.77 | -8.88% | 0.15 | | +------------+------------------+------------------+------------+---------+--------------+ ``` ``` === Benchmark Summary === Benchmark Type: wrk2 Old Version: ./nsolid_baseline New Version: ./nsolid_span_collector Iterations: 50 Connections: 10 Duration: 60s Rate: 50k === Latency Percentile Distribution === +------------+------------------+------------------+------------+---------+--------------+ | Percentile | Old Version (ms) | New Version (ms) | Difference | p-value | Significance | +------------+------------------+------------------+------------+---------+--------------+ | P50 | 0.98 | 0.95 | -3.76% | 0.16 | | | P75 | 1.78 | 1.54 | -13.31% | 0.23 | | | P90 | 3.36 | 2.49 | -25.71% | 0.18 | | | P95 | 5.37 | 3.51 | -34.60% | 0.09 | * | | P99 | 18.08 | 10.66 | -41.02% | 0.01 | *** | | P99.9 | 50.91 | 30.78 | -39.54% | 0.01 | *** | | P99.99 | 72.19 | 47.71 | -33.91% | 0.01 | *** | | P99.999 | 75.98 | 51.69 | -31.97% | 0.01 | *** | +------------+------------------+------------------+------------+---------+--------------+ ``` TL;DR The new version demonstrates a clear improvement in latency performance, particularly for edge cases and high-load scenarios represented by the tail latencies. This suggests better handling of resource-intensive operations or improved performance under stress conditions. PR-URL: #287 Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: dobleuber <wbertc@gmail.com>
|
Landed in a0a2c70 |
Add state tracking to prevent excessive `uv_async_t::send()` calls. Benchmark results for (40k and 50k): ``` === Benchmark Summary === Benchmark Type: wrk2 Old Version: ./nsolid_baseline New Version: ./nsolid_span_collector Iterations: 50 Connections: 10 Duration: 60s Rate: 40k === Latency Percentile Distribution === +------------+------------------+------------------+------------+---------+--------------+ | Percentile | Old Version (ms) | New Version (ms) | Difference | p-value | Significance | +------------+------------------+------------------+------------+---------+--------------+ | P50 | 1.09 | 1.10 | +0.40% | 0.00 | *** | | P75 | 1.67 | 1.67 | +0.03% | 0.73 | | | P90 | 2.22 | 2.22 | -0.23% | 0.01 | ** | | P95 | 2.54 | 2.53 | -0.52% | 0.00 | *** | | P99 | 3.16 | 3.10 | -1.82% | 0.00 | *** | | P99.9 | 4.98 | 4.36 | -12.45% | 0.01 | *** | | P99.99 | 9.97 | 8.96 | -10.09% | 0.13 | | | P99.999 | 12.91 | 11.77 | -8.88% | 0.15 | | +------------+------------------+------------------+------------+---------+--------------+ ``` ``` === Benchmark Summary === Benchmark Type: wrk2 Old Version: ./nsolid_baseline New Version: ./nsolid_span_collector Iterations: 50 Connections: 10 Duration: 60s Rate: 50k === Latency Percentile Distribution === +------------+------------------+------------------+------------+---------+--------------+ | Percentile | Old Version (ms) | New Version (ms) | Difference | p-value | Significance | +------------+------------------+------------------+------------+---------+--------------+ | P50 | 0.98 | 0.95 | -3.76% | 0.16 | | | P75 | 1.78 | 1.54 | -13.31% | 0.23 | | | P90 | 3.36 | 2.49 | -25.71% | 0.18 | | | P95 | 5.37 | 3.51 | -34.60% | 0.09 | * | | P99 | 18.08 | 10.66 | -41.02% | 0.01 | *** | | P99.9 | 50.91 | 30.78 | -39.54% | 0.01 | *** | | P99.99 | 72.19 | 47.71 | -33.91% | 0.01 | *** | | P99.999 | 75.98 | 51.69 | -31.97% | 0.01 | *** | +------------+------------------+------------------+------------+---------+--------------+ ``` TL;DR The new version demonstrates a clear improvement in latency performance, particularly for edge cases and high-load scenarios represented by the tail latencies. This suggests better handling of resource-intensive operations or improved performance under stress conditions. PR-URL: #287 Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: dobleuber <wbertc@gmail.com>
Add state tracking to prevent excessive `uv_async_t::send()` calls. Benchmark results for (40k and 50k): ``` === Benchmark Summary === Benchmark Type: wrk2 Old Version: ./nsolid_baseline New Version: ./nsolid_span_collector Iterations: 50 Connections: 10 Duration: 60s Rate: 40k === Latency Percentile Distribution === +------------+------------------+------------------+------------+---------+--------------+ | Percentile | Old Version (ms) | New Version (ms) | Difference | p-value | Significance | +------------+------------------+------------------+------------+---------+--------------+ | P50 | 1.09 | 1.10 | +0.40% | 0.00 | *** | | P75 | 1.67 | 1.67 | +0.03% | 0.73 | | | P90 | 2.22 | 2.22 | -0.23% | 0.01 | ** | | P95 | 2.54 | 2.53 | -0.52% | 0.00 | *** | | P99 | 3.16 | 3.10 | -1.82% | 0.00 | *** | | P99.9 | 4.98 | 4.36 | -12.45% | 0.01 | *** | | P99.99 | 9.97 | 8.96 | -10.09% | 0.13 | | | P99.999 | 12.91 | 11.77 | -8.88% | 0.15 | | +------------+------------------+------------------+------------+---------+--------------+ ``` ``` === Benchmark Summary === Benchmark Type: wrk2 Old Version: ./nsolid_baseline New Version: ./nsolid_span_collector Iterations: 50 Connections: 10 Duration: 60s Rate: 50k === Latency Percentile Distribution === +------------+------------------+------------------+------------+---------+--------------+ | Percentile | Old Version (ms) | New Version (ms) | Difference | p-value | Significance | +------------+------------------+------------------+------------+---------+--------------+ | P50 | 0.98 | 0.95 | -3.76% | 0.16 | | | P75 | 1.78 | 1.54 | -13.31% | 0.23 | | | P90 | 3.36 | 2.49 | -25.71% | 0.18 | | | P95 | 5.37 | 3.51 | -34.60% | 0.09 | * | | P99 | 18.08 | 10.66 | -41.02% | 0.01 | *** | | P99.9 | 50.91 | 30.78 | -39.54% | 0.01 | *** | | P99.99 | 72.19 | 47.71 | -33.91% | 0.01 | *** | | P99.999 | 75.98 | 51.69 | -31.97% | 0.01 | *** | +------------+------------------+------------------+------------+---------+--------------+ ``` TL;DR The new version demonstrates a clear improvement in latency performance, particularly for edge cases and high-load scenarios represented by the tail latencies. This suggests better handling of resource-intensive operations or improved performance under stress conditions. PR-URL: #287 Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: dobleuber <wbertc@gmail.com> PR-URL: #359 Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Add state tracking to prevent excessive
uv_async_t::send()calls.Benchmark results for (40k and 50k):
TL;DR
The new version demonstrates a clear improvement in latency performance, particularly for edge cases and high-load scenarios represented by the tail latencies. This suggests better handling of resource-intensive operations or improved performance under stress conditions.
Summary by CodeRabbit