Skip to content

Tracking Issue: Replace VReplicationExec Command + RPC  #12086

@mattlord

Description

@mattlord

Feature Description

Replace the SQL based VReplicationExec API with 1+ properly encapsulated RPCs to meet any remaining use cases.

Details

vtctld makes fairly heavy use of the VReplicationExec RPC. This client-server interface (vtctld->vttablet) needs to be replaced because it does not do proper encapsulation and instead exposes the raw SQL interface. This causes problems for upgrades/downgrades where the internal schema changes as e.g. shown in #11535. As you can see from that bug report this RPC is used internally by, among other things, the implementation of the Workflow client command.

Using the Workflow command as an example, vtctld should instead leverage a new tabletmanager RPC, something like WorkflowAction where it passes the keyspace.workflow value, the action, and optional parameters such as the tablet-types or cells values for the update action (this still needs to be spec'd out). All other internal uses of the VReplicationExec RPC (primarily by vtctld via the wrangler component) would also be replaced.

Similarly, all other internal uses of the VReplicationExec RPC should be replaced by 1+ new purpose-built RPCs that support the use case with proper encapsulation.

The end result being that the raw SQL client-server interface for executing VReplication commands will be gone and replaced by 1 or more new RPCs with proper encapsulation.

Work

Related Issues

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    In Progress

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions