Add EXPERIMENTAL tablet type to vtgate serving path#20115
Conversation
Review ChecklistHello reviewers! 👋 Please follow this checklist when reviewing this Pull Request. General
Tests
Documentation
New flags
If a workflow is added or modified:
Backward compatibility
|
There was a problem hiding this comment.
Pull request overview
This PR extends Vitess’ serving/visibility logic to treat EXPERIMENTAL tablets as part of the vtgate-serving path (serving graph + SrvKeyspace partitions), so they can be routed to/considered similarly to other serving tablet types.
Changes:
- Include
TabletType_EXPERIMENTALin serving graph and update-stream checks (topo.IsInServingGraph,topo.IsRunningUpdateStream). - Add
EXPERIMENTALto the set of served tablet types when rebuilding SrvKeyspace partitions (topotools.RebuildKeyspaceLocked). - Show replication status for
EXPERIMENTALtablets inSHOW VITESS_REPLICATION_STATUS. - Disable two GitHub workflows by ignoring all branches (appears unrelated to the stated PR purpose).
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| go/vt/vtgate/executor.go | Extends replication-status display filtering to include EXPERIMENTAL tablets. |
| go/vt/topotools/rebuild_keyspace.go | Adds EXPERIMENTAL to SrvKeyspace partition rebuild served types. |
| go/vt/topo/tablet.go | Treats EXPERIMENTAL as in the serving graph and eligible for update-stream running checks. |
| .github/workflows/pr_opened_tasks.yml | Disables PR-opened automation by ignoring all branches. |
| .github/workflows/error_code_docs_generate.yml | Disables error-code docs generation workflow by ignoring all branches. |
Allow vtgate to route queries to EXPERIMENTAL tablets by adding the type to the serving graph, SrvKeyspace partition rebuild, update stream, and SHOW TABLETS output. Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com> Signed-off-by: Eduardo Ortega <5791035+ejortegau@users.noreply.github.com>
3830e9e to
44230a0
Compare
|
📝 Documentation updates suggested I've created documentation updates for this PR: vitessio/website - Added EXPERIMENTAL tablet type documentation:
vitessio/vitess - Added changelog entry:
🤖 Generated by Promptless |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #20115 +/- ##
===========================================
+ Coverage 69.67% 81.99% +12.32%
===========================================
Files 1614 399 -1215
Lines 216793 62983 -153810
===========================================
- Hits 151044 51643 -99401
+ Misses 65749 11340 -54409
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Description
The
EXPERIMENTALtablet type was never included in vtgate's serving path, making it impossible to route queries to EXPERIMENTAL tablets through vtgate. This PR addsEXPERIMENTALto the serving graph, theSrvKeyspacepartition rebuild, the update stream, and theSHOW TABLETSoutput so vtgate can discover and route queries toEXPERIMENTALtablets.After deploying, operators need to run
vtctldclient RebuildKeyspaceGraph <keyspace>to regenerate the SrvKeyspace with the new EXPERIMENTAL partition.Related Issue(s)
Fixes #20114
Checklist
Deployment Notes
After deploying vtctld with this change, run
vtctldclient RebuildKeyspaceGraph <keyspace>for any keyspace that has EXPERIMENTAL tablets. This regenerates the SrvKeyspace to include the EXPERIMENTAL partition. vtgate must also be restarted (or will pick up the new SrvKeyspace via its topo watcher) to begin routing to EXPERIMENTAL tablets.Optionally add
experimentalto the arguments of--tablet_types_to_waitif you want vtgate to wait for healthyEXPERIMENTALtablets at startup.AI Disclosure
This PR was written with the help of Claude Code.