Skip to content

perf: introduce TopologyCache

Summary

  • perf: introduce TopologyCache

TopologyCache is a collection of deserialized structures with information about cluster topology. This currently includes data from _pico_instance, _pico_replicaset, _pico_tier & _pico_service_route_table. The info is automatically kept up to date with the corresponding system tables. The TopologyCache also caches the immutable info related to the current instance, like instance name, replicaset uuid, etc.

From now on we should be reading this data from TopologyCache whenever possible instead of going directly to system tables as we were doing previosly.

At the moment only the plugin RPC module has transitioned to using TopologyCache but other modules should be refactored as well. Especially governor.

  • refactor: simplify code in resolve_rpc_target

  • chore: util::DebugDiff for pretty struct comparison

  • fix: explicitly check bucket id for validity

Before this fix if requesting RPC by an invalid bucket_id we would send an RPC to every replicaset to check if they have such a bucket_id. This is not needed because we know the allowed range.

  • feat: upon panic dump the backtrace to file

  • chore: new rustfmt dropped

  • refactor: clean up handle_dml_entry


Edited by Georgy Moshkin

Merge request reports

Loading