-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
grpc: upgrade to 1.66.2 and use Codec v2 #16790
Conversation
Signed-off-by: Vicent Marti <[email protected]>
Review ChecklistHello reviewers! 👋 Please follow this checklist when reviewing this Pull Request. General
Tests
Documentation
New flags
If a workflow is added or modified:
Backward compatibility
|
Hello! 👋 This Pull Request is now handled by arewefastyet. The current HEAD and future commits will be benchmarked. You can find the performance comparison on the arewefastyet website. |
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #16790 +/- ##
==========================================
+ Coverage 69.35% 69.37% +0.02%
==========================================
Files 1571 1571
Lines 204183 204188 +5
==========================================
+ Hits 141601 141658 +57
+ Misses 62582 62530 -52 ☔ View full report in Codecov by Sentry. |
Wow so this actually worked: https://benchmark.vitess.io/compare?old=main&new=fedf86784d6510a1837aa4d0f96817edab0b1fb8 We're missing TPCC which is not running atm for an unknown reasons but these numbers are huge. 3% increase in QPS and 13% reduction in allocated memory per requests is a huge win at this point in the lifetime of the project. And this is without adapting the I think this is good to merge, as it's a drop-in replacement and the numbers are fantastic. The next steps involve updating |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❤️ 🥳
This PR updates the gRPC codec from v1 to v2, enhancing performance and reducing memory allocations by utilizing a memory pool for encoded messages. Refs: - grpc/grpc-go#7356 - vitessio/vitess#16790
Description
This PR upgrades our GRPC version to 1.66.2 and introduces the new Codec v2 for serializing and deserializing protobuf messages. The goal of this codec is to enable memory pooling and hopefully increase real-world performance of Vitess clusters by reducing the number of memory allocations used when working with GRPC. You can can read up on the implementation details and next steps for the codec in this discussion PR.
This is the very first iteration of these changes, which only implements buffer pooling, but does not attempt to pool the objects themselves. Our hope is that this should already show in the benchmarks, so if it doesn't it'll be a bit disappointing! 🤞
Related Issue(s)
Checklist
Deployment Notes