<mxfile host="wiki.whamcloud.com" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" version="26.0.14">
  <diagram id="0tmBKc1Dv2A52xmoVpUv" name="Page-1">
    <mxGraphModel dx="1679" dy="105" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="-gQA22KsCmpkGvynCuuO-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=-0.016;entryY=0.508;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="-gQA22KsCmpkGvynCuuO-2" target="-gQA22KsCmpkGvynCuuO-8" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="-gQA22KsCmpkGvynCuuO-2" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;RDONLY&lt;/font&gt;&lt;div&gt;All mirrors in sync&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="-220" y="510" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="-gQA22KsCmpkGvynCuuO-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.998;entryY=0.593;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="-gQA22KsCmpkGvynCuuO-4" target="-gQA22KsCmpkGvynCuuO-14" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="-100" y="570" as="targetPoint" />
            <Array as="points" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-gQA22KsCmpkGvynCuuO-4" value="&lt;div&gt;&lt;font style=&quot;font-size: 16px;&quot;&gt;Write Pending&lt;/font&gt;&lt;/div&gt;&lt;div&gt;Non-primary mirrors stale&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="240" y="510" width="140" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ct1oCNNBNnmS5-N9Eb8_-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="-gQA22KsCmpkGvynCuuO-8" target="-gQA22KsCmpkGvynCuuO-4">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="-gQA22KsCmpkGvynCuuO-8" value="&lt;font&gt;&lt;span style=&quot;color: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); font-size: 20px;&quot;&gt;Write&lt;br&gt;&lt;/span&gt;Take Active Writer lock from MDS&lt;br&gt;Write from client to all mirrors&lt;/font&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;,&lt;br&gt;stales non-primary mirrors&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="-10" y="450" width="200" height="80" as="geometry" />
        </mxCell>
        <mxCell id="-gQA22KsCmpkGvynCuuO-12" value="&lt;font style=&quot;font-size: 24px;&quot;&gt;FLR Immediate Replication State Machine&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;perimeterSpacing=1;" parent="1" vertex="1">
          <mxGeometry x="-110" y="410" width="470" height="40" as="geometry" />
        </mxCell>
        <mxCell id="Ct1oCNNBNnmS5-N9Eb8_-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0.545;exitY=0.99;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="-gQA22KsCmpkGvynCuuO-14" target="Ct1oCNNBNnmS5-N9Eb8_-3">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="20" y="670" as="targetPoint" />
            <Array as="points">
              <mxPoint x="104" y="650" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="Ct1oCNNBNnmS5-N9Eb8_-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="-gQA22KsCmpkGvynCuuO-14" target="-gQA22KsCmpkGvynCuuO-2">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="-160" y="590" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="-gQA22KsCmpkGvynCuuO-14" value="&lt;font style=&quot;color: rgb(102, 0, 204);&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;Write Complete&lt;/span&gt;&lt;/font&gt;&lt;div&gt;All Active Writer locks released&lt;br&gt;If no write errors, return all mirrors&lt;br&gt;to in sync.&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;font style=&quot;color: rgb(255, 51, 51); font-size: 16px;&quot;&gt;If write errors:&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="-5" y="530" width="200" height="100" as="geometry" />
        </mxCell>
        <mxCell id="Ct1oCNNBNnmS5-N9Eb8_-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="Ct1oCNNBNnmS5-N9Eb8_-3" target="Ct1oCNNBNnmS5-N9Eb8_-12">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="Ct1oCNNBNnmS5-N9Eb8_-3" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;RDONLY&lt;/font&gt;&lt;div&gt;Errored mirrors&amp;nbsp; marked inconsistent&lt;br&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="-220" y="620" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ct1oCNNBNnmS5-N9Eb8_-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Ct1oCNNBNnmS5-N9Eb8_-12" target="-gQA22KsCmpkGvynCuuO-2">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="-355" y="550" />
              <mxPoint x="-240" y="550" />
              <mxPoint x="-240" y="540" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="Ct1oCNNBNnmS5-N9Eb8_-12" value="Once file is idle, inconsistent mirrors can be repaired with standard sync process: RESYNC_PENDING, RDONLY" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="-450" y="560" width="190" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ct1oCNNBNnmS5-N9Eb8_-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=4;strokeColor=#00FF00;" edge="1" parent="1" source="Ct1oCNNBNnmS5-N9Eb8_-13" target="Ct1oCNNBNnmS5-N9Eb8_-3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="Ct1oCNNBNnmS5-N9Eb8_-13" value="&lt;font style=&quot;font-size: 14px; color: rgb(0, 153, 77);&quot;&gt;&lt;b style=&quot;&quot;&gt;File is writable - Clients will write to all consistent mirrors&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="-260" y="710" width="200" height="40" as="geometry" />
        </mxCell>
        <mxCell id="Ct1oCNNBNnmS5-N9Eb8_-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=-0.002;entryY=0.714;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="Ct1oCNNBNnmS5-N9Eb8_-3" target="-gQA22KsCmpkGvynCuuO-8">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
