pingcap/tiflow

Add tracing and fatal collect mechanism in TiCDC

オープン

#765 opened on 2020/07/20

 (0 件のコメント) (0 件のリアクション) (0 人の担当者)Go (310 件のフォーク)auto 404
difficulty/hardhelp wanted

Repository metrics

Stars
 (461 個のスター)
PR merge metrics
 (PR metrics pending)

説明

Feature Request

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

TiCDC defines some fatal errors for fast fail in some data inconsistent scenarios. In most of these cases, replication can be recovered by resuming the task. But it is different to tell the root cause of fatal error and whether data inconsistency would happen in downstream.

Describe the feature you'd like:

TiCDC should provide a flexible way for fatal error collect and tracing. We should classify errors and apply different strategies to different kinds of fetal error.

Task List

  • Refine error usage

    • Make regulation and unified the usage of return err and error chan
  • Basic error tracking framework

    • Design and implement a general module for error information track, record and persistent, used for some fatal error debug and backtrace.
  • Deal with the fatal error of The CRTs must be greater than the resolvedTs

    • puller: Design and implement a tsTracker tracking module in puller, which enables recoding ts forward history and saving necessary information when a fatal error happens, the saved information can help us to backtrace the forward history and find the potential bug.
    • Other modules, including processor and KV client: Firstly we should log enough context information when fatal error happens. Secondly we should estimate whether more tracing information can be saved.
  • Other fatal errors

    • Classify other fatal errors, also need to investigate whether tracing information can be saved in these scenarios.

Value

Value description

This feature will be helpful to debug and data consistency check in extreme error scenarios.

Value score

  • 5

Workload estimation

  • (TBD) person-day

Time

GanttStart: GanttDue:

コントリビューターガイド