You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After #7873, when we pass keyspaces_to_watch flag, VTGate will initialize a keyspaceFilteringServer which will return error when we try to get topo server out of it:
This could be problematic if there is a lot of of keyspaces, and the vtgate has to keep connections to all of them in order to support vstream() endpoint.
@setassociative suggested providing a readonly topo interface in keyspaceFilteringServer, instead of raising error directly - which I think makes sense, it can:
avoid the online DDL issue that we were trying to address initially (i don't fully grok the problem yet, but a readonly topo interface that avoids writes seems to be good enough for the specific use case)
allow vstream with keyspaces_to_watch flag
Reproduction Steps
Launch VTGate with keyspaces_to_watch flag and hit VStream endpoint on vtgate
Minor nit -- #7873 didn't introduce this; errors have been thrown when trying to access a writable topo server since the introduction of keyspaces_to_watch in #4420. If Vstream every worked on a vtgate with this flag it'll be because the method of selecting a tablet at some point didn't rely on a writable topo server ref.
Overview of the Issue
VStream relies on topo server to create a tablet picker:
vitess/go/vt/vtgate/vstream_manager.go
Line 431 in 990d49e
After #7873, when we pass
keyspaces_to_watch
flag, VTGate will initialize akeyspaceFilteringServer
which will return error when we try to get topo server out of it:vitess/go/vt/srvtopo/keyspace_filtering_server.go
Line 67 in c1c9276
This could be problematic if there is a lot of of keyspaces, and the vtgate has to keep connections to all of them in order to support vstream() endpoint.
@setassociative suggested providing a readonly topo interface in keyspaceFilteringServer, instead of raising error directly - which I think makes sense, it can:
keyspaces_to_watch
flagReproduction Steps
Launch VTGate with
keyspaces_to_watch
flag and hit VStream endpoint on vtgateBinary version
I'm on top of
4358c6
The text was updated successfully, but these errors were encountered: