Skip to content

Active-Active Replication Feature #64281

@lcwangchao

Description

@lcwangchao

Design Doc: #64294

Development Tasks

Feature Branches

Please merge the PRs to the feature branches:

  1. M1 : Milestone 1 (12/15): E2E MVP
  2. M2 : Milestone 2 (1/07): All Features

SoftDelete

TiDB

Parser & Optimizer

M1

M2

DDL

M1

M2

M3:

TiDB root@localhost:test> CREATE TABLE `t4_gi` (
                       ->   `id` int NOT NULL,
                       ->   PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */,
                       ->   /*T![softdelete] KEY `i1` (`_tidb_softdelete_time`) GLOBAL */,
                       ->   KEY `i2` (`id`),
                       ->   KEY `i3` (`id`)
                       -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
                       -> PARTITION BY HASH (`id`) PARTITIONS 4
                       -> SOFTDELETE_JOB_INTERVAL='24h';
(1064, 'You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 9 column 24 near "SOFTDELETE_JOB_INTERVAL=\'24h\'" ')
TiDB root@localhost:test> CREATE TABLE `t4_gi` (
                       ->   `id` int NOT NULL,
                       ->   PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */
                       ->   /*T![softdelete] , KEY `i1` (`_tidb_softdelete_time`) GLOBAL */,
                       ->   KEY `i2` (`id`),
                       ->   KEY `i3` (`id`)
                       -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
                       -> SOFTDELETE=RETENTION 7 DAY SOFTDELETE_JOB_INTERVAL='24h';
(1072, 'column does not exist: _tidb_softdelete_time')

Executors

M1

M2

M3

Active-Active Support

PD

M1

proto

M1

TiKV

M1

client-go

M1

TiDB

Parser & Optimizer

M1

  • Optimizer supports filtering new hidden columns.
  • Optimizer supports outputting the _tidb_commit_ts hidden column and passing corresponding information to the executor.

M2

M3

DDL

M1

Executors & Transaction

M1

M2

M3

Observability

M2

TTL

CDC

M1

M2

  • Support LWW Mode SQL as LWW
  • Create ticdcProgressTable to ensure data consistency
  • Support active table syncing in non-active-active mode
  • Support to collect metrics about how many rows skipped per changefeed / table

Others

Tool compatibility

M3

  • BR
  • Import into
  • lightning

Master Cherry Pick

TiKV

Client-go

TiDB

Release-8.5

kvproto

client-go

TiKV

TiDB

Metadata

Metadata

Assignees

No one assigned

    Labels

    affects-8.5This bug affects the 8.5.x(LTS) versions.type/feature-requestCategorizes issue or PR as related to a new feature.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions