Skip to content
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

refactor: clean up connection info cache interface #768

Merged
merged 2 commits into from
Apr 15, 2024
Merged

Conversation

enocom
Copy link
Member

@enocom enocom commented Apr 15, 2024

This PR shrinks the interface for the connection info cache. A smaller interface makes it easier to provide alternate implementations. Separately, the ConnectionInfo provides a super set of the InstanceEngineVersion data, making InstanceEngineVersion a duplicate method in effect. Also, connection count tracking shouldn't be done at the cache layer and instead should be done at the dialer layer. As a result, this PR removes two methods from the interface for a tighter and clean abstraction.

- Remove two methods from interface
- Move connection count into dialer
- Use ConnectionInfo to resolve DB version
@enocom enocom requested a review from a team as a code owner April 15, 2024 14:42
@enocom enocom requested a review from jackwotherspoon April 15, 2024 14:42
Copy link
Collaborator

@jackwotherspoon jackwotherspoon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one docstring change

Co-authored-by: Jack Wotherspoon <jackwoth@google.com>
Copy link
Collaborator

@jackwotherspoon jackwotherspoon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM ✅

@enocom enocom enabled auto-merge (squash) April 15, 2024 15:03
@enocom enocom merged commit a66d85b into main Apr 15, 2024
13 checks passed
@enocom enocom deleted the clean-interface branch April 15, 2024 15:04
enocom added a commit that referenced this pull request May 27, 2024
In #768, we removed an implicit behavior of the Go Connector. If a dial
attempt requests a non-existent IP type (e.g., client asks for public IP
on a private IP only instance), the Connector would invalidate the
cache. But with the cleanup PR, we removed that implicit behavior.

In some cases, it might be useful to have this behavior. For example, if
a caller starts the Go Connector and tries to connect to a public IP and
then later configures public IP, there is no need for a restart.

We made that change in the AlloyDB Go Connector mostly because some
internal tests depend on that behavior. See
GoogleCloudPlatform/alloydb-go-connector#555.

Fixes #780
enocom added a commit that referenced this pull request May 28, 2024
In #768, we removed an implicit behavior of the Go Connector. If a dial
attempt requests a non-existent IP type (e.g., client asks for public IP
on a private IP only instance), the Connector would invalidate the
cache. But with the cleanup PR, we removed that implicit behavior.

In some cases, it might be useful to have this behavior. For example, if
a caller starts the Go Connector and tries to connect to a public IP and
then later configures public IP, there is no need for a restart.

We made that change in the AlloyDB Go Connector mostly because some
internal tests depend on that behavior. See
GoogleCloudPlatform/alloydb-go-connector#555.

Fixes #780
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants