Skip to content

Conversation

@varundeepsaini
Copy link
Contributor

@varundeepsaini varundeepsaini commented Dec 13, 2025

Description

Adds support for the --shards flag to the start and stop commands for MoveTables and Reshard VReplication workflows. This allows users to start or stop workflows on a specific subset of shards rather than all shards at once.

Related Issue(s)

Fixes: #18949

Checklist

  • "Backport to:" labels have been added if this change should be back-ported to release branches
  • If this change is to be back-ported to previous releases, a justification is included in the PR description
  • Tests were added or are not required
  • Did the new or modified tests pass consistently locally and on CI?
  • Documentation was added or is not required

Deployment Notes

No deployment notes. This is a CLI enhancement with no database migrations or breaking changes.

AI Disclosure

This PR was authored with assistance from Claude.

@vitess-bot
Copy link
Contributor

vitess-bot bot commented Dec 13, 2025

Review Checklist

Hello reviewers! 👋 Please follow this checklist when reviewing this Pull Request.

General

  • Ensure that the Pull Request has a descriptive title.
  • Ensure there is a link to an issue (except for internal cleanup and flaky test fixes), new features should have an RFC that documents use cases and test cases.

Tests

  • Bug fixes should have at least one unit or end-to-end test, enhancement and new features should have a sufficient number of tests.

Documentation

  • Apply the release notes (needs details) label if users need to know about this change.
  • New features should be documented.
  • There should be some code comments as to why things are implemented the way they are.
  • There should be a comment at the top of each new or modified test to explain what the test does.

New flags

  • Is this flag really necessary?
  • Flag names must be clear and intuitive, use dashes (-), and have a clear help text.

If a workflow is added or modified:

  • Each item in Jobs should be named in order to mark it as required.
  • If the workflow needs to be marked as required, the maintainer team must be notified.

Backward compatibility

  • Protobuf changes should be wire-compatible.
  • Changes to _vt tables and RPCs need to be backward compatible.
  • RPC changes should be compatible with vitess-operator
  • If a flag is removed, then it should also be removed from vitess-operator and arewefastyet, if used there.
  • vtctl command output order should be stable and awk-able.

@vitess-bot vitess-bot bot added NeedsBackportReason If backport labels have been applied to a PR, a justification is required NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsIssue A linked issue is missing for this Pull Request NeedsWebsiteDocsUpdate What it says labels Dec 13, 2025
@github-actions github-actions bot added this to the v24.0.0 milestone Dec 13, 2025
@promptless
Copy link
Contributor

promptless bot commented Dec 13, 2025

📝 Documentation updates detected!

New suggestion: Add --shards flag to MoveTables and Reshard start/stop commands

@promptless
Copy link
Contributor

promptless bot commented Dec 13, 2025

📝 Documentation updates detected!

New suggestion: Add changelog entry for VReplication --shards flag

Copy link
Member

@mattlord mattlord left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @varundeepsaini !

There's more work to be done on the client side -- as we're not passing the shards in the request:

// The only thing we're updating is the state.
req := &vtctldatapb.WorkflowUpdateRequest{
Keyspace: workflowOptions.Keyspace,
TabletRequest: &tabletmanagerdatapb.UpdateVReplicationWorkflowRequest{
Workflow: workflowUpdateOptions.Workflow,
Cells: textutil.SimulatedNullStringSlice,
TabletTypes: textutil.SimulatedNullTabletTypeSlice,
State: &state,
},
}

It's a different call path for workflow stop/start:

// The only thing we're updating is the state.
req := &vtctldatapb.WorkflowUpdateRequest{
Keyspace: baseOptions.Keyspace,
TabletRequest: &tabletmanagerdatapb.UpdateVReplicationWorkflowRequest{
Workflow: baseOptions.Workflow,
Cells: textutil.SimulatedNullStringSlice,
TabletTypes: textutil.SimulatedNullTabletTypeSlice,
State: &state,
Shards: shards,
},
}

We should also add some test coverage for this.

@mattlord mattlord added Type: Enhancement Logical improvement (somewhere between a bug and feature) Component: VReplication and removed NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsIssue A linked issue is missing for this Pull Request NeedsBackportReason If backport labels have been applied to a PR, a justification is required labels Dec 14, 2025
@varundeepsaini
Copy link
Contributor Author

hey @mattlord ,
will add the tests
However, I didnt exactly get the more work part. Could you please be more specific?

@mattlord
Copy link
Member

@varundeepsaini I literally cannot be more specific. :-) The issue will auto-close w/o any progress in the coming weeks.

Signed-off-by: Varun Deep Saini <[email protected]>
Signed-off-by: Varun Deep Saini <[email protected]>
@varundeepsaini varundeepsaini force-pushed the add-shards-flag-to-movetables-reshard branch from 479fc31 to 986504d Compare January 14, 2026 10:44
@varundeepsaini
Copy link
Contributor Author

hey @mattlord
i have added the tests, could you review and re run the failed tests (they aren't related to my changes)

@codecov
Copy link

codecov bot commented Jan 14, 2026

Codecov Report

❌ Patch coverage is 92.30769% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 69.91%. Comparing base (d38ee62) to head (986504d).
⚠️ Report is 9 commits behind head on main.

Files with missing lines Patch % Lines
...vtctldclient/command/vreplication/common/update.go 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #19023      +/-   ##
==========================================
+ Coverage   69.90%   69.91%   +0.01%     
==========================================
  Files        1613     1613              
  Lines      216076   216085       +9     
==========================================
+ Hits       151055   151085      +30     
+ Misses      65021    65000      -21     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Member

@mattlord mattlord left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work @varundeepsaini ! Thank you ❤️

@mattlord mattlord requested review from mhamza15 and removed request for rohit-nayak-ps and shlomi-noach January 16, 2026 15:40
@mattlord mattlord removed the NeedsWebsiteDocsUpdate What it says label Jan 16, 2026
Copy link
Collaborator

@mhamza15 mhamza15 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

@mattlord mattlord merged commit 4f8e08a into vitessio:main Jan 16, 2026
103 of 110 checks passed
@promptless
Copy link
Contributor

promptless bot commented Jan 16, 2026

📝 Documentation updates detected!

New suggestion: Add --shards flag to MoveTables and Reshard start/stop command docs

@varundeepsaini varundeepsaini deleted the add-shards-flag-to-movetables-reshard branch January 16, 2026 19:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: VReplication Type: Enhancement Logical improvement (somewhere between a bug and feature)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature Request: support per shard start/stop in the MoveTables and Reshard subcommands

3 participants