github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/docs/media/db-sorter-class.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" contentStyleType="text/css" height="531px" preserveAspectRatio="none" style="width:733px;height:531px;background:#FFFFFF;" version="1.1" viewBox="0 0 733 531" width="733px" zoomAndPan="magnify"><defs/><g><!--MD5=[44201db48fb57df1a9c7f5b6b15426b0]
     2  class Actor--><g id="elem_Actor"><rect codeLine="3" fill="#F1F1F1" height="64.2969" id="Actor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="70" x="191.5" y="15.5"/><ellipse cx="206.5" cy="31.5" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M207.4531,28.2813 L209.1719,28.2813 C209.5625,28.2813 209.75,28.25 209.875,28.1719 C210.1406,28.0156 210.2813,27.7344 210.2813,27.4375 C210.2813,27.1719 210.1719,26.9063 209.9375,26.7344 C209.7656,26.625 209.625,26.5938 209.1719,26.5938 L204.0313,26.5938 C203.5938,26.5938 203.4688,26.6094 203.3125,26.7031 C203.0625,26.8594 202.9063,27.1563 202.9063,27.4375 C202.9063,27.7188 203.0469,27.9688 203.2656,28.1406 C203.4219,28.25 203.6094,28.2813 204.0313,28.2813 L205.75,28.2813 L205.75,34.7969 L204.0313,34.7969 C203.5938,34.7969 203.4688,34.8125 203.3125,34.9219 C203.0625,35.0781 202.9063,35.3594 202.9063,35.6563 C202.9063,35.9063 203.0469,36.1719 203.2656,36.3281 C203.4219,36.4531 203.625,36.5 204.0313,36.5 L209.1719,36.5 C209.9219,36.5 210.2813,36.2188 210.2813,35.6563 C210.2813,35.375 210.1719,35.125 209.9375,34.9531 C209.7656,34.8281 209.625,34.7969 209.1719,34.7969 L207.4531,34.7969 L207.4531,28.2813 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="38" x="220.5" y="36.3467">Actor</text><line style="stroke:#181818;stroke-width:0.5;" x1="192.5" x2="260.5" y1="47.5" y2="47.5"/><line style="stroke:#181818;stroke-width:0.5;" x1="192.5" x2="260.5" y1="55.5" y2="55.5"/><ellipse cx="202.5" cy="66.5" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="36" x="211.5" y="72.4951">Poll()</text></g><!--MD5=[1c3e943d42dc1329df11b65be04a5fd0]
     3  class EntrySorter--><g id="elem_EntrySorter"><rect codeLine="7" fill="#F1F1F1" height="80.5938" id="EntrySorter" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="113" x="405" y="7"/><ellipse cx="420" cy="23" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M420.9531,19.7813 L422.6719,19.7813 C423.0625,19.7813 423.25,19.75 423.375,19.6719 C423.6406,19.5156 423.7813,19.2344 423.7813,18.9375 C423.7813,18.6719 423.6719,18.4063 423.4375,18.2344 C423.2656,18.125 423.125,18.0938 422.6719,18.0938 L417.5313,18.0938 C417.0938,18.0938 416.9688,18.1094 416.8125,18.2031 C416.5625,18.3594 416.4063,18.6563 416.4063,18.9375 C416.4063,19.2188 416.5469,19.4688 416.7656,19.6406 C416.9219,19.75 417.1094,19.7813 417.5313,19.7813 L419.25,19.7813 L419.25,26.2969 L417.5313,26.2969 C417.0938,26.2969 416.9688,26.3125 416.8125,26.4219 C416.5625,26.5781 416.4063,26.8594 416.4063,27.1563 C416.4063,27.4063 416.5469,27.6719 416.7656,27.8281 C416.9219,27.9531 417.125,28 417.5313,28 L422.6719,28 C423.4219,28 423.7813,27.7188 423.7813,27.1563 C423.7813,26.875 423.6719,26.625 423.4375,26.4531 C423.2656,26.3281 423.125,26.2969 422.6719,26.2969 L420.9531,26.2969 L420.9531,19.7813 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="81" x="434" y="27.8467">EntrySorter</text><line style="stroke:#181818;stroke-width:0.5;" x1="406" x2="517" y1="39" y2="39"/><line style="stroke:#181818;stroke-width:0.5;" x1="406" x2="517" y1="47" y2="47"/><ellipse cx="416" cy="58" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="77" x="425" y="63.9951">AddEntry()</text><ellipse cx="416" cy="74.2969" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="61" x="425" y="80.292">Output()</text></g><!--MD5=[557c4021d6121eee326300067c1570de]
     4  class DBActor--><g id="elem_DBActor"><rect codeLine="12" fill="#F1F1F1" height="80.5938" id="DBActor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="93" x="7" y="328"/><ellipse cx="22" cy="344" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M24.3438,339.6719 C23.4063,339.2344 22.8125,339.0938 21.9375,339.0938 C19.3125,339.0938 17.3125,341.1719 17.3125,343.8906 L17.3125,345.0156 C17.3125,347.5938 19.4219,349.4844 22.3125,349.4844 C23.5313,349.4844 24.6875,349.1875 25.4375,348.6406 C26.0156,348.2344 26.3438,347.7813 26.3438,347.3906 C26.3438,346.9375 25.9531,346.5469 25.4844,346.5469 C25.2656,346.5469 25.0625,346.625 24.875,346.8125 C24.4219,347.2969 24.4219,347.2969 24.2344,347.3906 C23.8125,347.6563 23.125,347.7813 22.3594,347.7813 C20.3125,347.7813 19.0156,346.6875 19.0156,344.9844 L19.0156,343.8906 C19.0156,342.1094 20.2656,340.7969 22,340.7969 C22.5781,340.7969 23.1875,340.9531 23.6563,341.2031 C24.1406,341.4844 24.3125,341.7031 24.4063,342.1094 C24.4688,342.5156 24.5,342.6406 24.6406,342.7656 C24.7813,342.9063 25.0156,343.0156 25.2344,343.0156 C25.5,343.0156 25.7656,342.875 25.9375,342.6563 C26.0469,342.5 26.0781,342.3125 26.0781,341.8906 L26.0781,340.4688 C26.0781,340.0313 26.0625,339.9063 25.9688,339.75 C25.8125,339.4844 25.5313,339.3438 25.2344,339.3438 C24.9375,339.3438 24.7344,339.4375 24.5156,339.75 L24.3438,339.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="61" x="36" y="348.8467">DBActor</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="99" y1="360" y2="360"/><ellipse cx="18" cy="371" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="59" x="27" y="376.9951">LevelDB</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="99" y1="384.2969" y2="384.2969"/><ellipse cx="18" cy="395.2969" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="36" x="27" y="401.292">Poll()</text></g><g id="elem_GMN239075"><path d="M6,469 L6,524.3984 A0,0 0 0 0 6,524.3984 L101,524.3984 A0,0 0 0 0 101,524.3984 L101,479 L91,469 L57.5,469 L53.5,409.021 L49.5,469 L6,469 A0,0 0 0 0 6,469 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M91,469 L91,479 L101,479 L91,469 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="64" x="12" y="486.0669">shared by</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="51" x="12" y="501.1997">multiple</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="74" x="12" y="516.3325">TableSorter</text></g><!--MD5=[86cfdc25119a3a20e0664f11a0f5b002]
     5  class Writer--><g id="elem_Writer"><rect codeLine="20" fill="#F1F1F1" height="80.5938" id="Writer" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="83" x="283" y="328"/><ellipse cx="300.25" cy="344" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M302.5938,339.6719 C301.6563,339.2344 301.0625,339.0938 300.1875,339.0938 C297.5625,339.0938 295.5625,341.1719 295.5625,343.8906 L295.5625,345.0156 C295.5625,347.5938 297.6719,349.4844 300.5625,349.4844 C301.7813,349.4844 302.9375,349.1875 303.6875,348.6406 C304.2656,348.2344 304.5938,347.7813 304.5938,347.3906 C304.5938,346.9375 304.2031,346.5469 303.7344,346.5469 C303.5156,346.5469 303.3125,346.625 303.125,346.8125 C302.6719,347.2969 302.6719,347.2969 302.4844,347.3906 C302.0625,347.6563 301.375,347.7813 300.6094,347.7813 C298.5625,347.7813 297.2656,346.6875 297.2656,344.9844 L297.2656,343.8906 C297.2656,342.1094 298.5156,340.7969 300.25,340.7969 C300.8281,340.7969 301.4375,340.9531 301.9063,341.2031 C302.3906,341.4844 302.5625,341.7031 302.6563,342.1094 C302.7188,342.5156 302.75,342.6406 302.8906,342.7656 C303.0313,342.9063 303.2656,343.0156 303.4844,343.0156 C303.75,343.0156 304.0156,342.875 304.1875,342.6563 C304.2969,342.5 304.3281,342.3125 304.3281,341.8906 L304.3281,340.4688 C304.3281,340.0313 304.3125,339.9063 304.2188,339.75 C304.0625,339.4844 303.7813,339.3438 303.4844,339.3438 C303.1875,339.3438 302.9844,339.4375 302.7656,339.75 L302.5938,339.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="46" x="314.75" y="348.8467">Writer</text><line style="stroke:#181818;stroke-width:0.5;" x1="284" x2="365" y1="360" y2="360"/><ellipse cx="294" cy="371" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57" x="303" y="376.9951">mailbox</text><line style="stroke:#181818;stroke-width:0.5;" x1="284" x2="365" y1="384.2969" y2="384.2969"/><ellipse cx="294" cy="395.2969" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="36" x="303" y="401.292">Poll()</text></g><!--MD5=[e86a4777f2c0372cf9fb3cd047e1466e]
     6  class Reader--><g id="elem_Reader"><rect codeLine="26" fill="#F1F1F1" height="80.5938" id="Reader" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="83" x="401" y="328"/><ellipse cx="416" cy="344" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M418.3438,339.6719 C417.4063,339.2344 416.8125,339.0938 415.9375,339.0938 C413.3125,339.0938 411.3125,341.1719 411.3125,343.8906 L411.3125,345.0156 C411.3125,347.5938 413.4219,349.4844 416.3125,349.4844 C417.5313,349.4844 418.6875,349.1875 419.4375,348.6406 C420.0156,348.2344 420.3438,347.7813 420.3438,347.3906 C420.3438,346.9375 419.9531,346.5469 419.4844,346.5469 C419.2656,346.5469 419.0625,346.625 418.875,346.8125 C418.4219,347.2969 418.4219,347.2969 418.2344,347.3906 C417.8125,347.6563 417.125,347.7813 416.3594,347.7813 C414.3125,347.7813 413.0156,346.6875 413.0156,344.9844 L413.0156,343.8906 C413.0156,342.1094 414.2656,340.7969 416,340.7969 C416.5781,340.7969 417.1875,340.9531 417.6563,341.2031 C418.1406,341.4844 418.3125,341.7031 418.4063,342.1094 C418.4688,342.5156 418.5,342.6406 418.6406,342.7656 C418.7813,342.9063 419.0156,343.0156 419.2344,343.0156 C419.5,343.0156 419.7656,342.875 419.9375,342.6563 C420.0469,342.5 420.0781,342.3125 420.0781,341.8906 L420.0781,340.4688 C420.0781,340.0313 420.0625,339.9063 419.9688,339.75 C419.8125,339.4844 419.5313,339.3438 419.2344,339.3438 C418.9375,339.3438 418.7344,339.4375 418.5156,339.75 L418.3438,339.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="51" x="430" y="348.8467">Reader</text><line style="stroke:#181818;stroke-width:0.5;" x1="402" x2="483" y1="360" y2="360"/><ellipse cx="412" cy="371" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57" x="421" y="376.9951">mailbox</text><line style="stroke:#181818;stroke-width:0.5;" x1="402" x2="483" y1="384.2969" y2="384.2969"/><ellipse cx="412" cy="395.2969" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="36" x="421" y="401.292">Poll()</text></g><!--MD5=[6f5650f61b80ea1d45b180055758e3f4]
     7  class Compactor--><g id="elem_Compactor"><rect codeLine="32" fill="#F1F1F1" height="80.5938" id="Compactor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="113" x="135" y="328"/><ellipse cx="150" cy="344" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M152.3438,339.6719 C151.4063,339.2344 150.8125,339.0938 149.9375,339.0938 C147.3125,339.0938 145.3125,341.1719 145.3125,343.8906 L145.3125,345.0156 C145.3125,347.5938 147.4219,349.4844 150.3125,349.4844 C151.5313,349.4844 152.6875,349.1875 153.4375,348.6406 C154.0156,348.2344 154.3438,347.7813 154.3438,347.3906 C154.3438,346.9375 153.9531,346.5469 153.4844,346.5469 C153.2656,346.5469 153.0625,346.625 152.875,346.8125 C152.4219,347.2969 152.4219,347.2969 152.2344,347.3906 C151.8125,347.6563 151.125,347.7813 150.3594,347.7813 C148.3125,347.7813 147.0156,346.6875 147.0156,344.9844 L147.0156,343.8906 C147.0156,342.1094 148.2656,340.7969 150,340.7969 C150.5781,340.7969 151.1875,340.9531 151.6563,341.2031 C152.1406,341.4844 152.3125,341.7031 152.4063,342.1094 C152.4688,342.5156 152.5,342.6406 152.6406,342.7656 C152.7813,342.9063 153.0156,343.0156 153.2344,343.0156 C153.5,343.0156 153.7656,342.875 153.9375,342.6563 C154.0469,342.5 154.0781,342.3125 154.0781,341.8906 L154.0781,340.4688 C154.0781,340.0313 154.0625,339.9063 153.9688,339.75 C153.8125,339.4844 153.5313,339.3438 153.2344,339.3438 C152.9375,339.3438 152.7344,339.4375 152.5156,339.75 L152.3438,339.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="81" x="164" y="348.8467">Compactor</text><line style="stroke:#181818;stroke-width:0.5;" x1="136" x2="247" y1="360" y2="360"/><ellipse cx="146" cy="371" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="59" x="155" y="376.9951">LevelDB</text><line style="stroke:#181818;stroke-width:0.5;" x1="136" x2="247" y1="384.2969" y2="384.2969"/><ellipse cx="146" cy="395.2969" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="36" x="155" y="401.292">Poll()</text></g><g id="elem_GMN239084"><path d="M144,469 L144,524.3984 A0,0 0 0 0 144,524.3984 L239,524.3984 A0,0 0 0 0 239,524.3984 L239,479 L229,469 L195.5,469 L191.5,409.021 L187.5,469 L144,469 A0,0 0 0 0 144,469 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M229,469 L229,479 L239,479 L229,469 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="64" x="150" y="486.0669">shared by</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="51" x="150" y="501.1997">multiple</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="74" x="150" y="516.3325">TableSorter</text></g><!--MD5=[801adc980e3a474944f9dc67105fbcb4]
     8  class TableSorter--><g id="elem_TableSorter"><rect codeLine="39" fill="#F1F1F1" height="113.1875" id="TableSorter" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="134" x="394.5" y="152"/><ellipse cx="416.7" cy="168" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M419.0438,163.6719 C418.1063,163.2344 417.5125,163.0938 416.6375,163.0938 C414.0125,163.0938 412.0125,165.1719 412.0125,167.8906 L412.0125,169.0156 C412.0125,171.5938 414.1219,173.4844 417.0125,173.4844 C418.2313,173.4844 419.3875,173.1875 420.1375,172.6406 C420.7156,172.2344 421.0438,171.7813 421.0438,171.3906 C421.0438,170.9375 420.6531,170.5469 420.1844,170.5469 C419.9656,170.5469 419.7625,170.625 419.575,170.8125 C419.1219,171.2969 419.1219,171.2969 418.9344,171.3906 C418.5125,171.6563 417.825,171.7813 417.0594,171.7813 C415.0125,171.7813 413.7156,170.6875 413.7156,168.9844 L413.7156,167.8906 C413.7156,166.1094 414.9656,164.7969 416.7,164.7969 C417.2781,164.7969 417.8875,164.9531 418.3563,165.2031 C418.8406,165.4844 419.0125,165.7031 419.1063,166.1094 C419.1688,166.5156 419.2,166.6406 419.3406,166.7656 C419.4813,166.9063 419.7156,167.0156 419.9344,167.0156 C420.2,167.0156 420.4656,166.875 420.6375,166.6563 C420.7469,166.5 420.7781,166.3125 420.7781,165.8906 L420.7781,164.4688 C420.7781,164.0313 420.7625,163.9063 420.6688,163.75 C420.5125,163.4844 420.2313,163.3438 419.9344,163.3438 C419.6375,163.3438 419.4344,163.4375 419.2156,163.75 L419.0438,163.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86" x="432.3" y="172.8467">TableSorter</text><line style="stroke:#181818;stroke-width:0.5;" x1="395.5" x2="527.5" y1="184" y2="184"/><ellipse cx="405.5" cy="195" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="103" x="414.5" y="200.9951">mailboxWriter</text><ellipse cx="405.5" cy="211.2969" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="108" x="414.5" y="217.292">mailboxReader</text><line style="stroke:#181818;stroke-width:0.5;" x1="395.5" x2="527.5" y1="224.5938" y2="224.5938"/><ellipse cx="405.5" cy="235.5938" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="77" x="414.5" y="241.5889">AddEntry()</text><ellipse cx="405.5" cy="251.8906" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="61" x="414.5" y="257.8857">Output()</text></g><g id="elem_GMN239089"><path d="M519,348.5 L519,388.7656 A0,0 0 0 0 519,388.7656 L726,388.7656 A0,0 0 0 0 726,388.7656 L726,358.5 L716,348.5 L606.974,348.5 L521.45,268.02 L598.974,348.5 L519,348.5 A0,0 0 0 0 519,348.5 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M716,348.5 L716,358.5 L726,358.5 L716,348.5 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="186" x="525" y="365.5669">delegates AddEntry to Writer</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="178" x="525" y="380.6997">delegates Output to Reader</text></g><!--MD5=[8898b5ad42cfcf38ae5dfaae97dc3866]
     9  reverse link Actor to DBActor--><g id="link_Actor_DBActor"><path codeLine="18" d="M200.02,97.328 C165.751,160.516 106.698,269.407 75.0363,327.789 " fill="none" id="Actor-backto-DBActor" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="193.909,93.912,209.597,79.668,206.216,100.586,193.909,93.912" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[dd68572fcab90744197a33ba791d8f96]
    10  reverse link Actor to Writer--><g id="link_Actor_Writer"><path codeLine="24" d="M242.005,98.969 C261.487,162.386 294.519,269.909 312.3,327.789 " fill="none" id="Actor-backto-Writer" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="235.257,100.842,236.075,79.668,248.64,96.73,235.257,100.842" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[fffcbcae2760f379c894a5fb00e58664]
    11  reverse link Actor to Reader--><g id="link_Actor_Reader"><path codeLine="30" d="M264.012,95.512 C276.438,111.791 290.017,130.379 301.5,148 C334.85,199.175 335.314,216.718 368.5,268 C381.599,288.243 397.401,309.818 411.033,327.685 " fill="none" id="Actor-backto-Reader" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="258.336,99.616,251.615,79.52,269.401,91.039,258.336,99.616" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[2e366371393226c7d49cd8002abeba2e]
    12  reverse link Actor to Compactor--><g id="link_Actor_Compactor"><path codeLine="37" d="M220.872,99.797 C213.902,163.318 202.18,270.161 195.857,327.789 " fill="none" id="Actor-backto-Compactor" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="213.941,98.785,223.08,79.668,227.857,100.312,213.941,98.785" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[53bf3df7948045b082655e7595ec7b69]
    13  reverse link EntrySorter to TableSorter--><g id="link_EntrySorter_TableSorter"><path codeLine="46" d="M461.5,108.272 C461.5,121.231 461.5,134.931 461.5,147.865 " fill="none" id="EntrySorter-backto-TableSorter" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="454.5,108.087,461.5,88.087,468.5,108.087,454.5,108.087" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[a154aec87aa4974254184dede93c4acb]
    14  link TableSorter to Writer--><g id="link_TableSorter_Writer"><path codeLine="47" d="M393.5,196 C338.89,196 326.392,271.767 324.151,322.58 " fill="none" id="TableSorter-to-Writer" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="323.955,327.723,328.2967,318.8828,324.1465,322.7267,320.3025,318.5764,323.955,327.723" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[f9ca07e86d81352b253f82f26688c3d2]
    15  link TableSorter to Reader--><g id="link_TableSorter_Reader"><path codeLine="48" d="M393.5,212 C346.474,212 381.124,277.494 411.244,323.473 " fill="none" id="TableSorter-to-Reader" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="414.142,327.858,412.5202,318.1436,411.3867,323.6857,405.8445,322.5521,414.142,327.858" style="stroke:#181818;stroke-width:1.0;"/></g><!--MD5=[a8e70648f55192b00d50aad7c0267c1c]
    16  @startuml
    17  top to bottom direction
    18  
    19  interface Actor {
    20  + Poll()
    21  }
    22  
    23  interface EntrySorter {
    24  + AddEntry()
    25  + Output()
    26  }
    27  
    28  class DBActor {
    29  + LevelDB
    30  + Poll()
    31  }
    32  note bottom : shared by\nmultiple\nTableSorter
    33  
    34  Actor <|- - - DBActor
    35  
    36  class Writer {
    37  + mailbox
    38  + Poll()
    39  }
    40  Actor <|- - - Writer
    41  
    42  class Reader {
    43  + mailbox
    44  + Poll()
    45  }
    46  Actor <|- - - Reader
    47  
    48  class Compactor {
    49  + LevelDB
    50  + Poll()
    51  }
    52  note bottom : shared by\nmultiple\nTableSorter
    53  Actor <|- - - Compactor
    54  
    55  class TableSorter {
    56  + mailboxWriter
    57  + mailboxReader
    58  + AddEntry()
    59  + Output()
    60  }
    61  note bottom : delegates AddEntry to Writer\ndelegates Output to Reader
    62  EntrySorter <|- - TableSorter
    63  TableSorter::mailboxWriter - -> Writer
    64  TableSorter::mailboxReader - -> Reader
    65  @enduml
    66  
    67  PlantUML version 1.2022.3beta2(Unknown compile time)
    68  (GPL source distribution)
    69  Java Runtime: Java(TM) SE Runtime Environment
    70  JVM: Java HotSpot(TM) 64-Bit Server VM
    71  Default Encoding: UTF-8
    72  Language: en
    73  Country: US
    74  --></g></svg>