[vtctld] Add remaining reparent commands to VtctldServer#7536
[vtctld] Add remaining reparent commands to VtctldServer#7536deepthi merged 16 commits intovitessio:masterfrom
Conversation
|
Looking into the datarace failure, which appears related to the PRS implementation in |
35cb340 to
2d7c891
Compare
Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
… ERS promotion Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
…ize VtctldServer with tmclient Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
Signed-off-by: Andrew Mason <amason@slack-corp.com>
2d7c891 to
24e393a
Compare
deepthi
left a comment
There was a problem hiding this comment.
Nice work. I have some comments on the UX, the rest lgtm.
| func init() { | ||
| EmergencyReparentShard.Flags().DurationVar(&emergencyReparentShardOptions.WaitReplicasTimeout, "wait-replicas-timeout", *topo.RemoteOperationTimeout, "Time to wait for replicas to catch up in reparenting.") | ||
| EmergencyReparentShard.Flags().StringVar(&emergencyReparentShardOptions.NewPrimaryAliasStr, "new-primary", "", "Alias of a tablet that should be the new primary. If not specified, the vtctld will select the best candidate to promote.") | ||
| EmergencyReparentShard.Flags().StringSliceVarP(&emergencyReparentShardOptions.IgnoreReplicaAliasStrList, "ignore-replicas", "i", nil, "Comma-separated, repeated list of replica tablet aliases to ignore during the emergency reparent.") |
There was a problem hiding this comment.
| EmergencyReparentShard.Flags().StringSliceVarP(&emergencyReparentShardOptions.IgnoreReplicaAliasStrList, "ignore-replicas", "i", nil, "Comma-separated, repeated list of replica tablet aliases to ignore during the emergency reparent.") | |
| EmergencyReparentShard.Flags().StringSliceVarP(&emergencyReparentShardOptions.IgnoreReplicaAliasStrList, "ignore-replicas", "", nil, "Comma-separated, repeated list of replica tablet aliases to ignore during the emergency reparent.") |
I assume this is a typo.
There was a problem hiding this comment.
Why "Comma-separated, repeated list"? Why not just "Comma-separated list"?
There was a problem hiding this comment.
It's repeated in the sense that you can specify the flag multiple times, so both -i "${alias1},${alias2}" and -i ${alias1} -i ${alias2} will work (as well as -i "${alias1},${alias2}" -i ${alias3}). I'm not sure of a concise way to word that, and what I have here is definitely not straightforward, so I'm very open to suggestions!
There was a problem hiding this comment.
I get it. Fine for right now, maybe we can revisit later.
| } | ||
|
|
||
| func init() { | ||
| EmergencyReparentShard.Flags().DurationVar(&emergencyReparentShardOptions.WaitReplicasTimeout, "wait-replicas-timeout", *topo.RemoteOperationTimeout, "Time to wait for replicas to catch up in reparenting.") |
There was a problem hiding this comment.
All the old flags use underscore (_). Is it a cobra convention to use dash (-)?
There was a problem hiding this comment.
It's a GNU convention [1] (and therefore more common among most CLIs), so I've been doing it for all the vtctldclient options (except the global action_timeout, which I copied from vtctlclient and for some reason didn't change at the time). Happy to back this out in a separate change (since I'll have to update a bunch of flags) if Vitess prefers to enforce underscores everywhere.
[1]: Stack Overflow, which provides some additional reasoning as well as linking to the GNU style guide: https://stackoverflow.com/a/50537232
There was a problem hiding this comment.
I see.. let us follow the convention.
| // primary. If NewPrimary was set in the request, then this will be the same | ||
| // alias. Otherwise, it will be the alias of the tablet found to be most | ||
| // up-to-date. | ||
| topodata.TabletAlias promoted_primary = 3; |
Signed-off-by: Andrew Mason <amason@slack-corp.com>
Description
This PR adds the remaining reparent-related RPCs to VtctldServer, namely:
EmergencyReparentShardPlannedReparentShardReparentTabletTabletExternallyReparentedIt includes a cherry-picked version of #7523, which is required to get some ERS smoke tests working. After merging that PR, I'll rebase on master to pull out those changes.✅Example usage
EmergencyReparentShard
PlannedReparentShard
Related Issue(s)
Checklist
Deployment Notes
Impacted Areas in Vitess
Components that this PR will affect: