Skip to content

Support multiple routing tables (one per database) #244

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

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

madchicken
Copy link
Contributor

This PR adds support for multi-database connections, so each database has its own routing table saved (and refreshed) on the driver side. It introduces significant enhancements to the connection management and routing logic in the codebase.
It also updates to TLS configuration handling (only load certificates if needed).

Database-specific routing and connection management:

  • lib/src/graph.rs: Updated methods to include an optional db parameter for database-specific connection retrieval. This ensures operations can target specific databases when required. [1] [2] [3] [4]
  • lib/src/routing/routed_connection_manager.rs: Enhanced RoutedConnectionManager to support database-specific routing tables and connections. Added logic to refresh routing tables dynamically when empty and introduced a maximum wait time for routing table updates. [1] [2] [3] [4]

Load-balancing strategy improvements:

TLS configuration updates:

  • lib/src/connection.rs: Simplified TLS configuration logic by removing redundant warnings and restructuring the ClientConfig initialization process. [1] [2]

Routing table provider updates:

Logging and diagnostics improvements:

  • lib/src/pool.rs: Enhanced logging to include the node URI when creating connection pools, providing better visibility into pool initialization.

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.

1 participant