Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(ticdc) add cdc engineering and architecture roadmap #10498

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

For more details, see [DM README](./README_DM.md) and [TiCDC README](./README_TiCDC.md).

For TiCDC engineering and architecture roadmap, plese see [TiCDC RoadMap](./docs/cdc-eng-roadmap.md)

## License

**TiFlow** is under the Apache 2.0 license. See the [LICENSE](./LICENSE) file for details.
4 changes: 4 additions & 0 deletions README_TiCDC.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ $ sysbench --mysql-host=127.0.0.1 --mysql-user=root --mysql-port=4000 --mysql-db
$ mysql -h 127.0.0.1 -P 5000 -u root -e "SELECT COUNT(*) FROM test.sbtest1"
```

## Roadmap

For TiCDC engineering and architecture roadmap, plese see [TiCDC RoadMap](./docs/cdc-eng-roadmap.md)

## Contributing

We welcome and greatly appreciate contributions. See [CONTRIBUTING.md](./CONTRIBUTING.md)
Expand Down
47 changes: 47 additions & 0 deletions docs/cdc-eng-roadmap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# TiCDC Engineering and Architecture Roadmap

- Author(s): [zhangjinpeng87](https://github.com/zhangjinpeng87)
- Last Updated: 2024-01-17

This is a roadmap of TiCDC project from engineering and architecture aspects. It expresses the intension of how we will improve this project to make TiCDC fit more users' use cases in next 1 to 2 years. The roadmap includes several domains like high availability, stability, performance, cloud native architecture evolution, etc. Notice: all contents list in the roadmap is a intension, we will try our best efforts to make it happen, but it doesn't mean we have a commitment for it, please don't rely on features/capabilities currently TiCDC doesn't have for your projects which have strick timeline requirement, even these features listed in the roadmap.

## Stability & Observability

### Goals

- The replication lag is expected (few seconds) under different workloads and throughput
- It is easy to diagnose issues of the whole lifecycle of changfeeds

### Projects

- Improve stability of TiCDC https://github.com/pingcap/tiflow/issues/10343
- TiDB big transaction doesn't block TiCDC replication
- Adding index desn't block sink to MySQL replication https://github.com/pingcap/tiflow/issues/10267
- Better observability for resolve TS blocked issue
- Simplify the timezone handling to reduce maintenance burden
- Optimize memory usage to reduce OOM risk https://github.com/pingcap/tiflow/issues/10386
- Isolate new created changefeed impact on other changefeeds at initilizing stage

## High Availability

### Goals

- The replication lag is expected under planned operations like rolling restart, scale-in and scale-out TiCDC cluster, etc.
- TiCDC can recover quickly under unexpected sinle node failure, partial network failure, and other temporary partial infra failtures.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- TiCDC can recover quickly under unexpected sinle node failure, partial network failure, and other temporary partial infra failtures.
- TiCDC can quickly recover from unexpected single node failures, partial network failures, and other temporary partial infrastructure failures.


### Projects

- TiCDC HA capability assesment
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- TiCDC HA capability assesment
- TiCDC HA capability assessment


## Multiple Upstream Support

### Goals

- Multiple upstream TiDB clusters can share the same TiCDC cluster to reduce hardware cost and maintenance cost
- The same TiCDC architecture can satisfy On-premise customers, TiDB Cloud Dedicated Tier and TiDB Cloud Serverless Tier.

### Projects

- Remove upstream PD denpendency, store changefeed metadata to meta store
- Throuput threshold for different upstream TiDB Cluster
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Throupt -> throughput

- TiCDC fetch data change logs from the Unified Log Service to eliminate incremental scan issue and simplify network complexity on cloud enviornment
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- TiCDC fetch data change logs from the Unified Log Service to eliminate incremental scan issue and simplify network complexity on cloud enviornment
- TiCDC fetches data change logs from the Unified Log Service to eliminate incremental scan issue and simplify network complexity on cloud environment.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can also make the memory consumption of TiCDC server predictable.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Simplify Sink to MySQL Timezone Handling

- Author(s): [zhangjinpeng1987](https://github.com/zhangjinpeng1987)
- Author(s): [zhangjinpeng87](https://github.com/zhangjinpeng87)
- Tracking Issue(s):

## Goals
Expand Down
Loading