github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/docs/media/scheduling_proto.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="582px" preserveAspectRatio="none" style="width:588px;height:582px;background:#FFFFFF;" version="1.1" viewBox="0 0 588 582" width="588px" zoomAndPan="magnify"><defs><filter height="300%" id="fdli4u00jl8l1" 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><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="158" x2="158" y1="40.2969" y2="539.5547"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="409" x2="409" y1="40.2969" y2="539.5547"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="523" x2="523" y1="40.2969" y2="539.5547"/><rect fill="#FEFECE" filter="url(#fdli4u00jl8l1)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="60" x="126" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="46" x="133" y="24.9951">Owner</text><rect fill="#FEFECE" filter="url(#fdli4u00jl8l1)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="60" x="126" y="538.5547"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="46" x="133" y="558.5498">Owner</text><rect fill="#FEFECE" filter="url(#fdli4u00jl8l1)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="100" x="357" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86" x="364" y="24.9951">Processor_A</text><rect fill="#FEFECE" filter="url(#fdli4u00jl8l1)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="100" x="357" y="538.5547"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86" x="364" y="558.5498">Processor_A</text><rect fill="#FEFECE" filter="url(#fdli4u00jl8l1)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="100" x="471" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86" x="478" y="24.9951">Processor_B</text><rect fill="#FEFECE" filter="url(#fdli4u00jl8l1)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="100" x="471" y="538.5547"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86" x="478" y="558.5498">Processor_B</text><polygon fill="#A80036" points="397,67.4297,407,71.4297,397,75.4297,401,71.4297" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="158" x2="403" y1="71.4297" y2="71.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9" x="165" y="66.3638">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="64" x="178" y="66.3638">Announce</text><polygon fill="#A80036" points="511,96.5625,521,100.5625,511,104.5625,515,100.5625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="158" x2="517" y1="100.5625" y2="100.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9" x="165" y="95.4966">2</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="64" x="178" y="95.4966">Announce</text><polygon fill="#A80036" points="169,125.6953,159,129.6953,169,133.6953,165,129.6953" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="163" x2="408" y1="129.6953" y2="129.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9" x="175" y="124.6294">3</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="31" x="188" y="124.6294">Sync</text><polygon fill="#A80036" points="169,182.5273,159,186.5273,169,190.5273,165,186.5273" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="163" x2="522" y1="186.5273" y2="186.5273"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9" x="175" y="181.4614">4</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="31" x="188" y="181.4614">Sync</text><path d="M5,142.6953 L5,212.6953 L149,212.6953 L149,152.6953 L139,142.6953 L5,142.6953 " fill="#FBFB77" filter="url(#fdli4u00jl8l1)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M139,142.6953 L139,152.6953 L149,152.6953 L139,142.6953 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="123" x="11" y="159.7622">Owner waits for all</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="122" x="11" y="174.895">processors to Sync</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="121" x="11" y="190.0278">before dispatching</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="61" x="11" y="205.1606">any table</text><polygon fill="#A80036" points="397,239.3594,407,243.3594,397,247.3594,401,243.3594" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="158" x2="403" y1="243.3594" y2="243.3594"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9" x="165" y="238.2935">5</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="151" x="178" y="238.2935">DispatchTable(Table 1)</text><polygon fill="#FBFB77" filter="url(#fdli4u00jl8l1)" points="362,256.3594,455,256.3594,465,267.3594,455,279.3594,362,279.3594,352,267.3594,362,256.3594" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="89" x="364" y="272.4263">starts Table 1</text><polygon fill="#A80036" points="511,301.625,521,305.625,511,309.625,515,305.625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="158" x2="517" y1="305.625" y2="305.625"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9" x="165" y="300.5591">6</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="151" x="178" y="300.5591">DispatchTable(Table 2)</text><polygon fill="#FBFB77" filter="url(#fdli4u00jl8l1)" points="476,318.625,569,318.625,579,329.625,569,341.625,476,341.625,466,329.625,476,318.625" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="89" x="478" y="334.6919">starts Table 2</text><polygon fill="#FBFB77" filter="url(#fdli4u00jl8l1)" points="362,351.7578,455,351.7578,465,362.7578,455,374.7578,362,374.7578,352,362.7578,362,351.7578" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="89" x="364" y="367.8247">Table 1 ready</text><polygon fill="#A80036" points="169,397.0234,159,401.0234,169,405.0234,165,401.0234" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="163" x2="408" y1="401.0234" y2="401.0234"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9" x="175" y="395.9575">7</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="214" x="188" y="395.9575">DispatchTableResponse(Table 1)</text><polygon fill="#FBFB77" filter="url(#fdli4u00jl8l1)" points="476,414.0234,569,414.0234,579,425.0234,569,437.0234,476,437.0234,466,425.0234,476,414.0234" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="89" x="478" y="430.0903">Table 2 ready</text><polygon fill="#A80036" points="169,459.2891,159,463.2891,169,467.2891,165,463.2891" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="163" x2="522" y1="463.2891" y2="463.2891"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9" x="175" y="458.2231">8</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="214" x="188" y="458.2231">DispatchTableResponse(Table 2)</text><polygon fill="#A80036" points="169,488.4219,159,492.4219,169,496.4219,165,492.4219" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="163" x2="408" y1="492.4219" y2="492.4219"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9" x="175" y="487.356">9</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="73" x="188" y="487.356">Checkpoint</text><polygon fill="#A80036" points="169,517.5547,159,521.5547,169,525.5547,165,521.5547" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="163" x2="522" y1="521.5547" y2="521.5547"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="18" x="175" y="516.4888">10</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="73" x="197" y="516.4888">Checkpoint</text><!--MD5=[8f743180b7548154038c0af0da952bc4] 2 @startuml 3 autonumber 4 5 Owner -> Processor_A: Announce 6 Owner -> Processor_B: Announce 7 Processor_A - -> Owner: Sync 8 Processor_B - -> Owner: Sync 9 note left 10 Owner waits for all 11 processors to Sync 12 before dispatching 13 any table 14 endnote 15 16 Owner -> Processor_A: DispatchTable(Table 1) 17 hnote over Processor_A 18 starts Table 1 19 endhnote 20 21 Owner -> Processor_B: DispatchTable(Table 2) 22 hnote over Processor_B 23 starts Table 2 24 endhnote 25 26 hnote over Processor_A 27 Table 1 ready 28 endhnote 29 Processor_A - -> Owner: DispatchTableResponse(Table 1) 30 hnote over Processor_B 31 Table 2 ready 32 endhnote 33 Processor_B - -> Owner: DispatchTableResponse(Table 2) 34 35 Processor_A - -> Owner: Checkpoint 36 Processor_B - -> Owner: Checkpoint 37 38 @enduml 39 40 PlantUML version 1.2021.11(Sat Oct 02 21:26:11 CST 2021) 41 (GPL source distribution) 42 Java Runtime: OpenJDK Runtime Environment 43 JVM: OpenJDK 64-Bit Server VM 44 Default Encoding: UTF-8 45 Language: en 46 Country: US 47 --></g></svg>