<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="1279" 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="490" 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;" parent="1" source="-gQA22KsCmpkGvynCuuO-8" target="-gQA22KsCmpkGvynCuuO-4" edge="1">
          <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 Mirroring 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="-250" y="410" width="450" 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;" parent="1" source="-gQA22KsCmpkGvynCuuO-14" target="Ct1oCNNBNnmS5-N9Eb8_-3" edge="1">
          <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;" parent="1" source="-gQA22KsCmpkGvynCuuO-14" target="-gQA22KsCmpkGvynCuuO-2" edge="1">
          <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;" parent="1" source="Ct1oCNNBNnmS5-N9Eb8_-3" target="Ct1oCNNBNnmS5-N9Eb8_-12" edge="1">
          <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 marked inconsistent,&lt;br&gt;&lt;/div&gt;&lt;div&gt;others return to sync&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="-235" y="600" width="150" height="90" 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;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="Ct1oCNNBNnmS5-N9Eb8_-12" target="-gQA22KsCmpkGvynCuuO-2" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="-315" y="520" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="Ct1oCNNBNnmS5-N9Eb8_-12" value="Once file is idle,&lt;br&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;inconsistent mirrors&lt;br&gt;can be repaired&lt;br&gt;w/standard sync process:&lt;/span&gt;&lt;div&gt;RESYNC_PENDING,&lt;br&gt;RDONLY&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="-390" y="559" width="150" height="80" 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;" parent="1" source="Ct1oCNNBNnmS5-N9Eb8_-13" target="Ct1oCNNBNnmS5-N9Eb8_-3" edge="1">
          <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;" parent="1" vertex="1">
          <mxGeometry x="-260" y="740" 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;" parent="1" source="Ct1oCNNBNnmS5-N9Eb8_-3" target="-gQA22KsCmpkGvynCuuO-8" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
