pingcap/tiflow

Support to skip specific execution error in MySQL sink

開放

#832 建立於 2020年8月10日

 (1 則留言) (0 個反應) (0 位負責人)Go (310 個分叉)auto 404
difficulty/mediumhelp wanted

倉庫指標

星標
 (461 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

Feature Request

Is your feature request related to a problem? Please describe:

Replication to downstream could meet various errors, in the current implementation of TiCDC, the replication task will pause at once when MySQL sink reports an error. If the error is an unrecoverable error, such as TiDB compatibility issue, or data inconsistency(such as duplicated index error), or schema is not the same between upstream and downstream, the only way to recovery replication is skip the failed executed event by start-ts.

However when there exist more similar errors with the same error type, it is an unfriendly experience to ignore these SQL events one by one.

Many replication scenarios require more availability rather than data consistency, we need to provide a better solution to achive a better tradeoff.

Btw, this is a similar feature from: https://github.com/pingcap/tidb-binlog/issues/963

Describe the feature you'd like:

  • Introduce a skip error mechanism, to allow MySQL sink to ignore specific execution error.
    • The ignored rows should be recorded in log or somewhere else, to provide some undo ability

Time

GanttStart: YYYY-MM-DD GanttDue: YYYY-MM-DD GanttProgress: 0%

Workload estimation(person-day)

  • Design: 5
  • Develop & QA: 10
  • Document: 3

貢獻者指南