github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/docs/ticdc-gc-safepoint.svg (about)

     1  <?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="502px" preserveAspectRatio="none" style="width:510px;height:502px;background:#FFFFFF;" version="1.1" viewBox="0 0 510 502" width="510px" zoomAndPan="magnify"><defs><filter height="300%" id="f1v7q03kszvp13" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#ADD8E6" height="490.3906" style="stroke:#A80036;stroke-width:1.0;" width="95" x="16" y="6"/><rect fill="#FFFFFF" filter="url(#f1v7q03kszvp13)" height="282.2656" style="stroke:#A80036;stroke-width:1.0;" width="10" x="189" y="115.6953"/><rect fill="#FFFFFF" filter="url(#f1v7q03kszvp13)" height="164.9297" style="stroke:#A80036;stroke-width:1.0;" width="10" x="194" y="233.0313"/><rect fill="#FFFFFF" filter="url(#f1v7q03kszvp13)" height="207.8672" style="stroke:#000000;stroke-width:2.0;" width="388.5" x="10" y="62.2969"/><rect fill="#FFFFFF" height="117.3359" style="stroke:none;stroke-width:1.0;" width="388.5" x="10" y="152.8281"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="39" x2="39" y1="45.2969" y2="458.0938"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="87" x2="87" y1="45.2969" y2="458.0938"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="194" x2="194" y1="45.2969" y2="458.0938"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="356.5" x2="356.5" y1="45.2969" y2="458.0938"/><rect fill="#FEFECE" filter="url(#f1v7q03kszvp13)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="34" x="20" y="10"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="20" x="27" y="29.9951">CLI</text><rect fill="#FEFECE" filter="url(#f1v7q03kszvp13)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="34" x="20" y="457.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="20" x="27" y="477.0889">CLI</text><rect fill="#FEFECE" filter="url(#f1v7q03kszvp13)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="35" x="68" y="10"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="21" x="75" y="29.9951">API</text><rect fill="#FEFECE" filter="url(#f1v7q03kszvp13)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="35" x="68" y="457.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="21" x="75" y="477.0889">API</text><rect fill="#FEFECE" filter="url(#f1v7q03kszvp13)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="34" x="175" y="10"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="20" x="182" y="29.9951">PD</text><rect fill="#FEFECE" filter="url(#f1v7q03kszvp13)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="34" x="175" y="457.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="20" x="182" y="477.0889">PD</text><rect fill="#FEFECE" filter="url(#f1v7q03kszvp13)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="59" x="325.5" y="10"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="45" x="332.5" y="29.9951">Owner</text><rect fill="#FEFECE" filter="url(#f1v7q03kszvp13)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="59" x="325.5" y="457.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="45" x="332.5" y="477.0889">Owner</text><rect fill="#FFFFFF" filter="url(#f1v7q03kszvp13)" height="282.2656" style="stroke:#A80036;stroke-width:1.0;" width="10" x="189" y="115.6953"/><rect fill="#FFFFFF" filter="url(#f1v7q03kszvp13)" height="164.9297" style="stroke:#A80036;stroke-width:1.0;" width="10" x="194" y="233.0313"/><path d="M10,62.2969 L153,62.2969 L153,69.2969 L143,79.2969 L10,79.2969 L10,62.2969 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="207.8672" style="stroke:#000000;stroke-width:2.0;" width="388.5" x="10" y="62.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="93" x="25" y="75.3638">"CLI or API?"</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacing" textLength="30" x="168" y="74.5073">[CLI]</text><polygon fill="#A80036" points="177,111.6953,187,115.6953,177,119.6953,181,115.6953" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="39" x2="183" y1="115.6953" y2="115.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="131" x="46" y="95.4966">service GC safepoint</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="129" x="46" y="110.6294">"cdc-creating-&lt;ID&gt;"</text><polygon fill="#A80036" points="177,140.8281,187,144.8281,177,148.8281,181,144.8281" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="39" x2="183" y1="144.8281" y2="144.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="122" x="46" y="139.7622">Create changefeed</text><line style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="10" x2="398.5" y1="153.8281" y2="153.8281"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacing" textLength="30" x="15" y="164.0386">[API]</text><polygon fill="#A80036" points="345,184.7656,355,188.7656,345,192.7656,349,188.7656" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="87.5" x2="351" y1="188.7656" y2="188.7656"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="146" x="94.5" y="183.6997">Create changefeed API</text><polygon fill="#A80036" points="215,229.0313,205,233.0313,215,237.0313,211,233.0313" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="209" x2="356" y1="233.0313" y2="233.0313"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="131" x="221" y="212.8325">service GC safepoint</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="129" x="221" y="227.9653">"cdc-creating-&lt;ID&gt;"</text><polygon fill="#A80036" points="215,258.1641,205,262.1641,215,266.1641,211,262.1641" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="209" x2="356" y1="262.1641" y2="262.1641"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="122" x="221" y="257.0981">Create changefeed</text><polygon fill="#A80036" points="215,314.4297,205,318.4297,215,322.4297,211,318.4297" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="209" x2="356" y1="318.4297" y2="318.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="126" x="221" y="313.3638">GC safepoint "ticdc"</text><path d="M362,282.1641 L362,337.1641 L501,337.1641 L501,292.1641 L491,282.1641 L362,282.1641 " fill="#FBFB77" filter="url(#f1v7q03kszvp13)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M491,282.1641 L491,292.1641 L501,292.1641 L491,282.1641 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="114" x="368" y="299.231">using the minimal</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="118" x="368" y="314.3638">checkpoint among</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="100" x="368" y="329.4966">all changefeeds</text><polygon fill="#A80036" points="205,393.9609,195,397.9609,205,401.9609,201,397.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="199" x2="356" y1="397.9609" y2="397.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="101" x="211" y="362.6294">Remove service</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="82" x="211" y="377.7622">GC safepoint</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="129" x="211" y="392.895">"cdc-creating-&lt;ID&gt;"</text><line style="stroke:#A80036;stroke-width:1.0;" x1="357" x2="399" y1="427.0938" y2="427.0938"/><line style="stroke:#A80036;stroke-width:1.0;" x1="399" x2="399" y1="427.0938" y2="440.0938"/><line style="stroke:#A80036;stroke-width:1.0;" x1="358" x2="399" y1="440.0938" y2="440.0938"/><polygon fill="#A80036" points="368,436.0938,358,440.0938,368,444.0938,364,440.0938" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="111" x="364" y="422.0278">Start changefeed</text><!--MD5=[37e79a71023fc9148aa64161f9af5001]
     2  @startuml TiCDC GC safepoint
     3  box #LightBlue
     4  participant CLI
     5  participant API
     6  end box
     7  
     8  group "CLI or API?" [CLI]
     9    CLI -> PD : service GC safepoint\n"cdc-creating-<ID>"
    10    activate PD
    11    CLI -> PD : Create changefeed
    12  else API
    13    API -> Owner : Create changefeed API
    14    Owner -> PD : service GC safepoint\n"cdc-creating-<ID>"
    15    activate PD
    16    Owner -> PD : Create changefeed
    17  end
    18  
    19  Owner -> PD : GC safepoint "ticdc"
    20  note right: using the minimal\ncheckpoint among\nall changefeeds
    21  
    22  Owner -> PD : Remove service\nGC safepoint\n"cdc-creating-<ID>"
    23  deactivate PD
    24  deactivate PD
    25  Owner -> Owner : Start changefeed
    26  @enduml
    27  
    28  PlantUML version 1.2021.7(Sun May 23 20:40:07 CST 2021)
    29  (GPL source distribution)
    30  Java Runtime: OpenJDK Runtime Environment
    31  JVM: OpenJDK 64-Bit Server VM
    32  Default Encoding: UTF-8
    33  Language: en
    34  Country: US
    35  --></g></svg>