Conversation
lstruman
commented
Jul 31, 2026
Contributor
- Make disable_initial_host_lookup configurable via config key; replace hardcoded constant with dbconf.GetBoolean
- Add exponential reconnection policy with configurable initial interval, max retries (default 10), and max interval
- Add socket keepalive support via configurable socket_keepalive_sec
- Upgrade host selection to TokenAwareHostPolicy wrapping DCAwareRoundRobinPolicy when local_dc is set
- Fix TLS host verification: derive EnableHostVerification from insecure_skip_verify instead of hardcoding false
- Read insecure_skip_verify once and pass to loadCassandraTLSConfig to eliminate duplicate config reads
- Add tls.server_name support for SNI override
- Raise default timeouts from 1s to 10s; align sample config
- Document all new config keys in sample_webconfig.conf for both cassandra and yugabyte blocks
- Make disable_initial_host_lookup configurable via config key; replace hardcoded constant with dbconf.GetBoolean - Add exponential reconnection policy with configurable initial interval, max retries (default 10), and max interval - Add socket keepalive support via configurable socket_keepalive_sec - Upgrade host selection to TokenAwareHostPolicy wrapping DCAwareRoundRobinPolicy when local_dc is set - Fix TLS host verification: derive EnableHostVerification from insecure_skip_verify instead of hardcoding false - Read insecure_skip_verify once and pass to loadCassandraTLSConfig to eliminate duplicate config reads - Add tls.server_name support for SNI override - Raise default timeouts from 1s to 10s; align sample config - Document all new config keys in sample_webconfig.conf for both cassandra and yugabyte blocks
There was a problem hiding this comment.
Pull request overview
This PR improves Cassandra/Yugabyte connection robustness and configurability by moving several previously hardcoded connection behaviors into configuration, and tightening TLS verification behavior.
Changes:
- Adds configurable connection options (timeouts, socket keepalive, disable_initial_host_lookup) and an exponential reconnection policy.
- Improves host selection when
local_dcis set by switching to token-aware routing over DC-aware round-robin. - Fixes TLS host verification behavior (driven by
tls.insecure_skip_verify) and addstls.server_namefor SNI override; updates sample config accordingly.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
db/cassandra/cassandra_client.go |
Adds configurable timeouts/keepalive/reconnection policy, token-aware host selection, and corrected TLS verification/SNI handling. |
config/sample_webconfig.conf |
Documents new Cassandra/Yugabyte config keys and updates sample defaults (timeouts, connections, TLS server_name). |
.gitignore |
Adds ignore entries for .opencode/ and CLAUDE.md. |
Suppressed comments (1)
config/sample_webconfig.conf:268
- Same as above: an empty tls.server_name will default to the corresponding
hostsentry, which may be a DNS name, not necessarily an IP address.
// Override SNI hostname sent during TLS handshake.
// Required when the certificate uses DNS SANs only (no IP SANs).
// Leave empty to use the host IP address (gocql default).
server_name = ""
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.