Skip to content

restore 'vtctl VExec' command, remove Onlind DDL VExec functionality (main branch)#9226

Closed
shlomi-noach wants to merge 2 commits intovitessio:mainfrom
planetscale:restore-vexec-for-non-online-ddl-main
Closed

restore 'vtctl VExec' command, remove Onlind DDL VExec functionality (main branch)#9226
shlomi-noach wants to merge 2 commits intovitessio:mainfrom
planetscale:restore-vexec-for-non-online-ddl-main

Conversation

@shlomi-noach
Copy link
Copy Markdown
Contributor

@shlomi-noach shlomi-noach commented Nov 14, 2021

Description

Fixes #9193
Followup to #8972
Backport PR: #9225

This PR restores vtctl VExec functionality. It was removed based on the assumption the only uses for this command were for Online DDL command. This was wrong, and VExec is also used as a wrapper around VReplication.

This PR now re-enabled vtctl VExec, but then strips out any Online DDL -specific logic from VExec. This means removing the schema_migrations table references, planner, templates; demoting onlineddl.Executor from being a VExec-utor, and removing some boilerplate code.

Checklist

  • Should this PR be backported?
  • Tests were added or are not required
  • Documentation was added or is not required

cc @deepthi @hallaroo

Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
@shlomi-noach
Copy link
Copy Markdown
Contributor Author

Heh. Not so fast. vtctl ApplySchema still relies on VExec. Looking into.

Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
@shlomi-noach
Copy link
Copy Markdown
Contributor Author

OK, further dependency resolved.

shlomi-noach added a commit to vitessio/website that referenced this pull request Nov 14, 2021
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
@shlomi-noach shlomi-noach marked this pull request as draft November 14, 2021 07:44
@shlomi-noach
Copy link
Copy Markdown
Contributor Author

Ugh sorry, yet another dependency in vtctl OnlineDDL ... show ... command. Resolving, and meanwhile marking as draft.

@shlomi-noach
Copy link
Copy Markdown
Contributor Author

This gets more complicated. vtctl OnlineDDL commands heavily rely on VExec. We cannot just delegate commands to the tablets because there is a syntax that is invalid to MySQL, e.g. SHOW VITESS_MIGRATIONS.... Normally VTGate takes care of the syntax. On vtctl side, we used VExec as a parallel path to handle the syntax.

I need to think about this some more.

@shlomi-noach
Copy link
Copy Markdown
Contributor Author

For now I'm going to close this PR and create a new PR which merely reverts #8972, until I figure out the best way to deprecate VExec/OnlineDDL.

@shlomi-noach shlomi-noach deleted the restore-vexec-for-non-online-ddl-main branch November 14, 2021 10:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: Cluster management Component: VReplication release notes (needs details) This PR needs to be listed in the release notes in a dedicated section (deprecation notice, etc...) Type: Bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Restore/resurrect vtctl VExec command

1 participant