Refresh routing table using a separated thread #216
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.
As promised, here is a follow-up PR to fetch and update the routing table using a separated thread.
This pull request introduces significant changes to the routing and connection management within the
lib/src
directory, specifically focusing on thegraph.rs
,connection_registry.rs
, androuted_connection_manager.rs
files. The changes include adding a newRoutingTableProvider
trait, implementing aClusterRoutingTableProvider
, and refactoring the connection registry and routed connection manager to support these updates.Improvements to Routing and Connection Management:
lib/src/graph.rs
: Updated theRoutedConnectionManager
initialization to include the newClusterRoutingTableProvider
and added debug logging for routing. [1] [2]lib/src/routing/connection_registry.rs
: Refactored theConnectionRegistry
to remove expired update logic, added a background updater for refreshing the routing table, and introduced theRegistryCommand
enum for controlling the updater. [1] [2] [3] [4] [5]lib/src/routing/mod.rs
: Added therouting_table_provider
module and updated theRoutingTable
struct to deriveDefault
. [1] [2] [3]lib/src/routing/routed_connection_manager.rs
: Refactored theRoutedConnectionManager
to use the newRoutingTableProvider
and added methods for managing bookmarks. [1] [2] [3] [4] [5]lib/src/routing/routing_table_provider.rs
: Introduced theRoutingTableProvider
trait and implemented theClusterRoutingTableProvider
to handle fetching the routing table.