planetscale/vitess-operator

Feature Request: Allow more than one VitessShardTabletPool with a certain tablet type in a given cell

yoheimuta opened this issue · 0 comments

Feature Description

We want to create more than one VitessShardTabletPool with a certain tablet type in a given cell.
This would allow us to support multiple unmanaged MySQL replicas with minimal changes like the one below.

apiVersion: planetscale.com/v2
kind: VitessCluster
metadata:
  name: example
spec:
  cells:
    - name: zone1
  keyspaces:
    - name: unsharded
      partitionings:
      - equal:
          parts: 1
          shardTemplate:
            tabletPools:
              - cell: zone1
                type: externalreplica
                replicas: 2
                vttablet:
                externalDatastore:
                  host: replica-host-1
              - cell: zone1
                type: externalreplica
                replicas: 2
                vttablet:
                externalDatastore:
                  host: replica-host-2

With this feature, we don't have to set up a (vtgate, vttablet) pair for each additional MySQL replica like the following, which requires client redirection to a different endpoint.

apiVersion: planetscale.com/v2
kind: VitessCluster
metadata:
  name: example
spec:
  cells:
    - name: zone1
    - name: zone2
  keyspaces:
    - name: unsharded
      partitionings:
        - equal:
            parts: 1
            shardTemplate:
              tabletPools:
                - cell: zone1
                  type: externalreplica
                  replicas: 2
                  vttablet:
                  externalDatastore:
                    host: replica-host-1
                - cell: zone2
                  type: externalreplica
                  replicas: 2
                  vttablet:
                  externalDatastore:
                    host: replica-host-2

Use Case(s)

  • When you want to build a redundant system with unmanaged tablets

Discussion