Feature Request: ensure topo calls use --topo_read_concurrency
#17275
Labels
Component: Throttler
Component: VTGate
Component: VTorc
Vitess Orchestrator integration
Component: VTTablet
Type: Enhancement
Logical improvement (somewhere between a bug and feature)
Type: Internal Cleanup
Type: Performance
Feature Description
The
--topo_read_concurrency
flag is intended (based on it's help message and usage in the code) to limit how many reads a Vitess component does concurrently to the topoUnfortunately in #14693 and #17071 (and at least 2 x more PRs for VTOrc to come) Vitess code is not always respecting this concurrency limit and is simply launching N x goroutines with
sync.WaitGroup
sAnother issue is sometimes methods do respect the
--topo_read_concurrency
limit, but only local to the the method execution, and that code is called concurrently, significantly exceeding the limitInstead of having the "callers" of
go/vt/topo
methods (internal or external) deal with concurrency limits all over the code, this feature request discusses making the concurrency limit built-in to all read-related struct methods ofgo/vt/topo
'sServer
structI believe if this is done correctly the concurrency limit should be respected by all methods, including if they're stacked or called repeatedly/concurrently in other methods/funcs
Your thoughts appreciated 🙇
Use Case(s)
Regular vitess usage
The text was updated successfully, but these errors were encountered: