-
Notifications
You must be signed in to change notification settings - Fork 136
chore: remove session pool and only use multiplexed sessions #4300
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
|
Warning: This pull request is touching the following templated files:
|
Summary of ChangesHello @rahul2393, 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 fundamentally refactors the session management within the Java Spanner client. By removing the traditional session pool and fully embracing multiplexed sessions, the client's architecture is streamlined. This change simplifies the codebase, reduces overhead associated with managing a pool of individual sessions, and aligns the client with a more efficient, modern approach to handling concurrent database interactions. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Ignored Files
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 is a significant and well-executed refactoring that removes the legacy SessionPool and transitions the Java Spanner client to exclusively use multiplexed sessions. The changes are consistent across the entire codebase, including production code, tests, benchmarks, and protobuf definitions, resulting in a much simpler and cleaner implementation. Obsolete files have been removed, and relevant public APIs have been clearly deprecated. I have one minor suggestion for removing some dead code that was left over from the refactoring. Overall, this is an excellent improvement.
I am having trouble creating individual review comments. Click here to see my feedback.
google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseClientImpl.java (250-257)
These methods are correctly removed as part of this refactoring. It seems that the fields nthRequest, dbId, and clientIdToOrdinalMap, along with the dbIdFromClientId() method, are now also unused. Consider removing them in a follow-up to complete the cleanup of dead code related to the old request ID generation.
738bac2 to
8f89cb4
Compare
|
Closing this, since we are moving ahead with original PR |
This PR removes the legacy SessionPool from the Java Spanner client, transitioning to multiplexed sessions as the only session management mechanism. Multiplexed sessions allow a single session to support multiple parallel transactions, eliminating the need for session pooling.