-
Notifications
You must be signed in to change notification settings - Fork 1.5k
feat(bigtable): introduce prime() method and load counting based on unary,streaming and ability to remove connection #13419
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
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…ed on unary,streaming and ability to remove connection (#1)
Summary of ChangesHello @sushanb, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly refactors the Bigtable client's internal connection pooling mechanism. The primary goal is to enhance connection management by introducing a Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
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.
Code Review
This pull request introduces significant enhancements to the Bigtable connection pool, including connection priming via a PingAndWarm RPC, fine-grained load tracking for unary and streaming calls, and a robust mechanism for connection draining and replacement. The changes are extensive, touching the connection pool implementation, its configuration, and its tests. The introduction of connEntry to manage individual connection state and the use of copy-on-write for updating the connection list are solid design choices for concurrent access. The test suite has been substantially improved with new tests for graceful draining, connection replacement, and comprehensive benchmarks.
My review focuses on a few areas for improvement. A key concern is a potential regression where the load balancing strategy is now hardcoded, removing previous configurability. I've also identified opportunities to simplify metadata handling and improve code clarity by replacing a magic number with a standard library constant. Finally, there's an unnecessary delay in one of the tests that could be removed to improve test execution speed.
no-op from sushanb#1