You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by fr...@apache.org on 2018/02/26 12:15:08 UTC

svn commit: r1825364 - in /jackrabbit/oak/branches/1.8: ./ oak-doc/src/site/markdown/nodestore/segment/

Author: frm
Date: Mon Feb 26 12:15:08 2018
New Revision: 1825364

URL: http://svn.apache.org/viewvc?rev=1825364&view=rev
Log:
OAK-6031 - Add TarFiles to the architecture diagram

Backport r1825362 from trunk.

Modified:
    jackrabbit/oak/branches/1.8/   (props changed)
    jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.md
    jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.png
    jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.svg
    jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.uml

Propchange: jackrabbit/oak/branches/1.8/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb 26 12:15:08 2018
@@ -1,3 +1,3 @@
 /jackrabbit/oak/branches/1.0:1665962
-/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962
+/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962,1825362
 /jackrabbit/trunk:1345480

Modified: jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.md
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.md?rev=1825364&r1=1825363&r2=1825364&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.md (original)
+++ jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.md Mon Feb 26 12:15:08 2018
@@ -26,4 +26,8 @@ The `SegmentNodeStore` is Oak Segment Ta
 
 The `SegmentStore` serves as a persistence backend for the `SegmentNodeStore`. It is responsible for providing concrete implementations of `Revisions`, `SegmentReader` and `BlobStore` to the former.  
 
-The `FileStore` is the implementation the `SegmentStore` that persists segments in tar files. The `MemoryStore` (not shown above) is an alternative implementation, which stores the segments in memory only. It is used for testing. 
\ No newline at end of file
+The `FileStore` is the implementation the `SegmentStore` that persists segments in tar files. The `MemoryStore` (not shown above) is an alternative implementation, which stores the segments in memory only. It is used for testing.
+
+The `FileStore` depends on `TarFiles` for the management of the TAR files on the file system.
+`TarFiles` is an aggregation of one `TarWriter` and zero or more `TarReader`.
+This design represents the foundation of the append-only store implemented by the `FileStore`, where data is appended to one `TarWriter` and archived in many `TarReader` over time. 
\ No newline at end of file

Modified: jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.png
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.png?rev=1825364&r1=1825363&r2=1825364&view=diff
==============================================================================
Binary files jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.png (original) and jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.png Mon Feb 26 12:15:08 2018 differ

Modified: jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.svg
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.svg?rev=1825364&r1=1825363&r2=1825364&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.svg (original)
+++ jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.svg Mon Feb 26 12:15:08 2018
@@ -1,19 +1,63 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache License, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License.  You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  ~
-  -->
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="419px" preserveAspectRatio="none" style="width:820px;height:419px;" version="1.1" viewBox="0 0 820 419" width="820px" zoomAndPan="magnify"><defs><filter height="300%" id="f95nz2e" 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><!--cluster ##73290--><!--cluster ##73300--><!--class NodeStore--><rect fill="#FEFECE" filter="url(#f95nz2e)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="66" y="72"/><ellipse cx="81" cy="88" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M81.9531,84.7813 L81.953
 1,91.2969 L83.6719,91.2969 C84.125,91.2969 84.2656,91.3281 84.4375,91.4531 C84.6719,91.625 84.7813,91.875 84.7813,92.1563 C84.7813,92.7188 84.4219,93 83.6719,93 L78.5313,93 C78.125,93 77.9219,92.9531 77.7656,92.8281 C77.5469,92.6719 77.4063,92.4063 77.4063,92.1563 C77.4063,91.8594 77.5625,91.5781 77.8125,91.4219 C77.9688,91.3125 78.0938,91.2969 78.5313,91.2969 L80.25,91.2969 L80.25,84.7813 L78.5313,84.7813 C78.1094,84.7813 77.9219,84.75 77.7656,84.6406 C77.5469,84.4688 77.4063,84.2188 77.4063,83.9375 C77.4063,83.6563 77.5625,83.3594 77.8125,83.2031 C77.9688,83.1094 78.0938,83.0938 78.5313,83.0938 L83.6719,83.0938 C84.125,83.0938 84.2656,83.125 84.4375,83.2344 C84.6719,83.4063 84.7813,83.6719 84.7813,83.9375 C84.7813,84.2344 84.6406,84.5156 84.375,84.6719 C84.25,84.75 84.0625,84.7813 83.6719,84.7813 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="67" x="95" y="92.1543">NodeStore</text><line style="strok
 e: #A80036; stroke-width: 1.5;" x1="67" x2="164" y1="104" y2="104"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="67" x2="164" y1="112" y2="112"/><!--class SegmentNodeStore--><rect fill="#FEFECE" filter="url(#f95nz2e)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="38" y="155"/><ellipse cx="53" cy="171" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M55.3438,166.6719 L55.5156,166.75 C55.7344,166.4375 55.9375,166.3438 56.2344,166.3438 C56.5313,166.3438 56.8125,166.4844 56.9688,166.75 C57.0625,166.9063 57.0781,167.0313 57.0781,167.4688 L57.0781,168.8906 C57.0781,169.3125 57.0469,169.5 56.9375,169.6563 C56.7656,169.875 56.5,170.0156 56.2344,170.0156 C56.0156,170.0156 55.7813,169.9063 55.6406,169.7656 C55.5,169.6406 55.4688,169.5156 55.4063,169.1094 C55.3125,168.7031 55.1406,168.4844 54.6563,168.2031 C54.1875,167.9531 53.5781,167.7969 53,167.7969 C51.2656,167.7969 50.0156,169.1094 50.0156,170.8906 L50.0156,171.9844 C5
 0.0156,173.6875 51.3125,174.7813 53.3594,174.7813 C54.125,174.7813 54.8125,174.6563 55.2344,174.3906 C55.4219,174.2969 55.4219,174.2969 55.875,173.8125 C56.0625,173.625 56.2656,173.5469 56.4844,173.5469 C56.9531,173.5469 57.3438,173.9375 57.3438,174.3906 C57.3438,174.7813 57.0156,175.2344 56.4375,175.6406 C55.6875,176.1875 54.5313,176.4844 53.3125,176.4844 C50.4219,176.4844 48.3125,174.5938 48.3125,172.0156 L48.3125,170.8906 C48.3125,168.1719 50.3125,166.0938 52.9375,166.0938 C53.8125,166.0938 54.4063,166.2344 55.3438,166.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="123" x="67" y="175.1543">SegmentNodeStore</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="39" x2="192" y1="187" y2="187"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="39" x2="192" y1="195" y2="195"/><!--class SegmentStore--><rect fill="#FEFECE" filter="url(#f95nz2e)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="12
 2" x="689" y="61"/><ellipse cx="704" cy="77" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M704.9531,73.7813 L704.9531,80.2969 L706.6719,80.2969 C707.125,80.2969 707.2656,80.3281 707.4375,80.4531 C707.6719,80.625 707.7813,80.875 707.7813,81.1563 C707.7813,81.7188 707.4219,82 706.6719,82 L701.5313,82 C701.125,82 700.9219,81.9531 700.7656,81.8281 C700.5469,81.6719 700.4063,81.4063 700.4063,81.1563 C700.4063,80.8594 700.5625,80.5781 700.8125,80.4219 C700.9688,80.3125 701.0938,80.2969 701.5313,80.2969 L703.25,80.2969 L703.25,73.7813 L701.5313,73.7813 C701.1094,73.7813 700.9219,73.75 700.7656,73.6406 C700.5469,73.4688 700.4063,73.2188 700.4063,72.9375 C700.4063,72.6563 700.5625,72.3594 700.8125,72.2031 C700.9688,72.1094 701.0938,72.0938 701.5313,72.0938 L706.6719,72.0938 C707.125,72.0938 707.2656,72.125 707.4375,72.2344 C707.6719,72.4063 707.7813,72.6719 707.7813,72.9375 C707.7813,73.2344 707.6406,73.5156 707.375,73.6719 C707.25,73.75 707.0625,73.78
 13 706.6719,73.7813 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="90" x="718" y="81.1543">SegmentStore</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="690" x2="810" y1="93" y2="93"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="690" x2="810" y1="101" y2="101"/><!--class FileStore--><rect fill="#FEFECE" filter="url(#f95nz2e)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="706.5" y="144"/><ellipse cx="721.5" cy="160" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M723.8438,155.6719 L724.0156,155.75 C724.2344,155.4375 724.4375,155.3438 724.7344,155.3438 C725.0313,155.3438 725.3125,155.4844 725.4688,155.75 C725.5625,155.9063 725.5781,156.0313 725.5781,156.4688 L725.5781,157.8906 C725.5781,158.3125 725.5469,158.5 725.4375,158.6563 C725.2656,158.875 725,159.0156 724.7344,159.0156 C724.5156,159.0156 724.2813,158.9063 724.1406,1
 58.7656 C724,158.6406 723.9688,158.5156 723.9063,158.1094 C723.8125,157.7031 723.6406,157.4844 723.1563,157.2031 C722.6875,156.9531 722.0781,156.7969 721.5,156.7969 C719.7656,156.7969 718.5156,158.1094 718.5156,159.8906 L718.5156,160.9844 C718.5156,162.6875 719.8125,163.7813 721.8594,163.7813 C722.625,163.7813 723.3125,163.6563 723.7344,163.3906 C723.9219,163.2969 723.9219,163.2969 724.375,162.8125 C724.5625,162.625 724.7656,162.5469 724.9844,162.5469 C725.4531,162.5469 725.8438,162.9375 725.8438,163.3906 C725.8438,163.7813 725.5156,164.2344 724.9375,164.6406 C724.1875,165.1875 723.0313,165.4844 721.8125,165.4844 C718.9219,165.4844 716.8125,163.5938 716.8125,161.0156 L716.8125,159.8906 C716.8125,157.1719 718.8125,155.0938 721.4375,155.0938 C722.3125,155.0938 722.9063,155.2344 723.8438,155.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="735.5" y="164.1543">FileStore</text><line style="stroke: #A80036; stroke-wi
 dth: 1.5;" x1="707.5" x2="792.5" y1="176" y2="176"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="707.5" x2="792.5" y1="184" y2="184"/><!--class Revisions--><rect fill="#FEFECE" filter="url(#f95nz2e)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="88" x="275.5" y="113"/><ellipse cx="290.5" cy="129" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M291.4531,125.7813 L291.4531,132.2969 L293.1719,132.2969 C293.625,132.2969 293.7656,132.3281 293.9375,132.4531 C294.1719,132.625 294.2813,132.875 294.2813,133.1563 C294.2813,133.7188 293.9219,134 293.1719,134 L288.0313,134 C287.625,134 287.4219,133.9531 287.2656,133.8281 C287.0469,133.6719 286.9063,133.4063 286.9063,133.1563 C286.9063,132.8594 287.0625,132.5781 287.3125,132.4219 C287.4688,132.3125 287.5938,132.2969 288.0313,132.2969 L289.75,132.2969 L289.75,125.7813 L288.0313,125.7813 C287.6094,125.7813 287.4219,125.75 287.2656,125.6406 C287.0469,125.4688 286.9063,125.2188 286.9063
 ,124.9375 C286.9063,124.6563 287.0625,124.3594 287.3125,124.2031 C287.4688,124.1094 287.5938,124.0938 288.0313,124.0938 L293.1719,124.0938 C293.625,124.0938 293.7656,124.125 293.9375,124.2344 C294.1719,124.4063 294.2813,124.6719 294.2813,124.9375 C294.2813,125.2344 294.1406,125.5156 293.875,125.6719 C293.75,125.75 293.5625,125.7813 293.1719,125.7813 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="56" x="304.5" y="133.1543">Revisions</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="276.5" x2="362.5" y1="145" y2="145"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="276.5" x2="362.5" y1="153" y2="153"/><!--class TarRevisions--><rect fill="#FEFECE" filter="url(#f95nz2e)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="110" x="482.5" y="113"/><ellipse cx="497.5" cy="129" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M499.8438,124.6719 L
 500.0156,124.75 C500.2344,124.4375 500.4375,124.3438 500.7344,124.3438 C501.0313,124.3438 501.3125,124.4844 501.4688,124.75 C501.5625,124.9063 501.5781,125.0313 501.5781,125.4688 L501.5781,126.8906 C501.5781,127.3125 501.5469,127.5 501.4375,127.6563 C501.2656,127.875 501,128.0156 500.7344,128.0156 C500.5156,128.0156 500.2813,127.9063 500.1406,127.7656 C500,127.6406 499.9688,127.5156 499.9063,127.1094 C499.8125,126.7031 499.6406,126.4844 499.1563,126.2031 C498.6875,125.9531 498.0781,125.7969 497.5,125.7969 C495.7656,125.7969 494.5156,127.1094 494.5156,128.8906 L494.5156,129.9844 C494.5156,131.6875 495.8125,132.7813 497.8594,132.7813 C498.625,132.7813 499.3125,132.6563 499.7344,132.3906 C499.9219,132.2969 499.9219,132.2969 500.375,131.8125 C500.5625,131.625 500.7656,131.5469 500.9844,131.5469 C501.4531,131.5469 501.8438,131.9375 501.8438,132.3906 C501.8438,132.7813 501.5156,133.2344 500.9375,133.6406 C500.1875,134.1875 499.0313,134.4844 497.8125,134.4844 C494.9219,134.4844 492.8125,13
 2.5938 492.8125,130.0156 L492.8125,128.8906 C492.8125,126.1719 494.8125,124.0938 497.4375,124.0938 C498.3125,124.0938 498.9063,124.2344 499.8438,124.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="511.5" y="133.1543">TarRevisions</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="483.5" x2="591.5" y1="145" y2="145"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="483.5" x2="591.5" y1="153" y2="153"/><!--class SegmentReader--><rect fill="#FEFECE" filter="url(#f95nz2e)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="133" x="253" y="196"/><ellipse cx="268" cy="212" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M268.9531,208.7813 L268.9531,215.2969 L270.6719,215.2969 C271.125,215.2969 271.2656,215.3281 271.4375,215.4531 C271.6719,215.625 271.7813,215.875 271.7813,216.1563 C271.7813,216.7188 271.4219,217 270.6719,217 L265.5313,217 C265.125,217 26
 4.9219,216.9531 264.7656,216.8281 C264.5469,216.6719 264.4063,216.4063 264.4063,216.1563 C264.4063,215.8594 264.5625,215.5781 264.8125,215.4219 C264.9688,215.3125 265.0938,215.2969 265.5313,215.2969 L267.25,215.2969 L267.25,208.7813 L265.5313,208.7813 C265.1094,208.7813 264.9219,208.75 264.7656,208.6406 C264.5469,208.4688 264.4063,208.2188 264.4063,207.9375 C264.4063,207.6563 264.5625,207.3594 264.8125,207.2031 C264.9688,207.1094 265.0938,207.0938 265.5313,207.0938 L270.6719,207.0938 C271.125,207.0938 271.2656,207.125 271.4375,207.2344 C271.6719,207.4063 271.7813,207.6719 271.7813,207.9375 C271.7813,208.2344 271.6406,208.5156 271.375,208.6719 C271.25,208.75 271.0625,208.7813 270.6719,208.7813 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="101" x="282" y="216.1543">SegmentReader</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="254" x2="385" y1="228" y2="228"/><line style="stroke: #A80036; st
 roke-width: 1.5;" x1="254" x2="385" y1="236" y2="236"/><!--class CachingSegmentReader--><rect fill="#FEFECE" filter="url(#f95nz2e)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="183" x="446" y="196"/><ellipse cx="461" cy="212" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M463.3438,207.6719 L463.5156,207.75 C463.7344,207.4375 463.9375,207.3438 464.2344,207.3438 C464.5313,207.3438 464.8125,207.4844 464.9688,207.75 C465.0625,207.9063 465.0781,208.0313 465.0781,208.4688 L465.0781,209.8906 C465.0781,210.3125 465.0469,210.5 464.9375,210.6563 C464.7656,210.875 464.5,211.0156 464.2344,211.0156 C464.0156,211.0156 463.7813,210.9063 463.6406,210.7656 C463.5,210.6406 463.4688,210.5156 463.4063,210.1094 C463.3125,209.7031 463.1406,209.4844 462.6563,209.2031 C462.1875,208.9531 461.5781,208.7969 461,208.7969 C459.2656,208.7969 458.0156,210.1094 458.0156,211.8906 L458.0156,212.9844 C458.0156,214.6875 459.3125,215.7813 461.3594,215.7813 C462.1
 25,215.7813 462.8125,215.6563 463.2344,215.3906 C463.4219,215.2969 463.4219,215.2969 463.875,214.8125 C464.0625,214.625 464.2656,214.5469 464.4844,214.5469 C464.9531,214.5469 465.3438,214.9375 465.3438,215.3906 C465.3438,215.7813 465.0156,216.2344 464.4375,216.6406 C463.6875,217.1875 462.5313,217.4844 461.3125,217.4844 C458.4219,217.4844 456.3125,215.5938 456.3125,213.0156 L456.3125,211.8906 C456.3125,209.1719 458.3125,207.0938 460.9375,207.0938 C461.8125,207.0938 462.4063,207.2344 463.3438,207.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="151" x="475" y="216.1543">CachingSegmentReader</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="447" x2="628" y1="228" y2="228"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="447" x2="628" y1="236" y2="236"/><!--class SegmentWriter--><rect fill="#FEFECE" filter="url(#f95nz2e)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="257" y="279"/>
 <ellipse cx="272" cy="295" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M274.3438,290.6719 L274.5156,290.75 C274.7344,290.4375 274.9375,290.3438 275.2344,290.3438 C275.5313,290.3438 275.8125,290.4844 275.9688,290.75 C276.0625,290.9063 276.0781,291.0313 276.0781,291.4688 L276.0781,292.8906 C276.0781,293.3125 276.0469,293.5 275.9375,293.6563 C275.7656,293.875 275.5,294.0156 275.2344,294.0156 C275.0156,294.0156 274.7813,293.9063 274.6406,293.7656 C274.5,293.6406 274.4688,293.5156 274.4063,293.1094 C274.3125,292.7031 274.1406,292.4844 273.6563,292.2031 C273.1875,291.9531 272.5781,291.7969 272,291.7969 C270.2656,291.7969 269.0156,293.1094 269.0156,294.8906 L269.0156,295.9844 C269.0156,297.6875 270.3125,298.7813 272.3594,298.7813 C273.125,298.7813 273.8125,298.6563 274.2344,298.3906 C274.4219,298.2969 274.4219,298.2969 274.875,297.8125 C275.0625,297.625 275.2656,297.5469 275.4844,297.5469 C275.9531,297.5469 276.3438,297.9375 276.3438,298.3906 C276.3
 438,298.7813 276.0156,299.2344 275.4375,299.6406 C274.6875,300.1875 273.5313,300.4844 272.3125,300.4844 C269.4219,300.4844 267.3125,298.5938 267.3125,296.0156 L267.3125,294.8906 C267.3125,292.1719 269.3125,290.0938 271.9375,290.0938 C272.8125,290.0938 273.4063,290.2344 274.3438,290.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="286" y="299.1543">SegmentWriter</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="258" x2="381" y1="311" y2="311"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="258" x2="381" y1="319" y2="319"/><!--class BlobStore--><rect fill="#FEFECE" filter="url(#f95nz2e)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="273" y="362"/><ellipse cx="288" cy="378" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M288.9531,374.7813 L288.9531,381.2969 L290.6719,381.2969 C291.125,381.2969 291.2656,381.3281 291.4375,381.4531 C291.67
 19,381.625 291.7813,381.875 291.7813,382.1563 C291.7813,382.7188 291.4219,383 290.6719,383 L285.5313,383 C285.125,383 284.9219,382.9531 284.7656,382.8281 C284.5469,382.6719 284.4063,382.4063 284.4063,382.1563 C284.4063,381.8594 284.5625,381.5781 284.8125,381.4219 C284.9688,381.3125 285.0938,381.2969 285.5313,381.2969 L287.25,381.2969 L287.25,374.7813 L285.5313,374.7813 C285.1094,374.7813 284.9219,374.75 284.7656,374.6406 C284.5469,374.4688 284.4063,374.2188 284.4063,373.9375 C284.4063,373.6563 284.5625,373.3594 284.8125,373.2031 C284.9688,373.1094 285.0938,373.0938 285.5313,373.0938 L290.6719,373.0938 C291.125,373.0938 291.2656,373.125 291.4375,373.2344 C291.6719,373.4063 291.7813,373.6719 291.7813,373.9375 C291.7813,374.2344 291.6406,374.5156 291.375,374.6719 C291.25,374.75 291.0625,374.7813 290.6719,374.7813 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="61" x="302" y="382.1543">BlobStore</text><lin
 e style="stroke: #A80036; stroke-width: 1.5;" x1="274" x2="365" y1="394" y2="394"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="274" x2="365" y1="402" y2="402"/><path d="M115.5,154.684 C115.5,149.938 115.5,145.192 115.5,140.446 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="108.5,140.299,115.5,120.299,122.5,140.299,108.5,140.299" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M750,143.684 C750,138.938 750,134.192 750,129.446 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="743,129.299,750,109.299,757,129.299,743,129.299" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M193.156,163.062 C218.992,157.69 247.089,151.848 270.121,147.059 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="275.256,145.991,265.6304,143.906,270.3606,147.0084,267.2582,151.7386,275.256,145.991" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M193.156,194.559 C211.11
 1,198.203 230.158,202.069 247.837,205.658 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="252.786,206.662,244.7628,200.9499,247.8861,205.6663,243.1697,208.7897,252.786,206.662" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M155.927,203.203 C189.991,224.113 239.164,254.299 274.499,275.99 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="279.172,278.858,273.5942,270.7409,274.9107,276.2424,269.4092,277.5589,279.172,278.858" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M132.502,203.054 C156.084,237.321 202.83,300.914 253,345 C258.568,349.8927 264.783,354.5833 271.107,358.931 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="275.496,361.8845,270.2623,353.5414,271.3477,359.0931,265.796,360.1786,275.496,361.8845" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M383.705,137 C414.965,137 452.311,137 482.257,137 " fill="none" style="stroke: #A8003
 6; stroke-width: 1.0;"/><polygon fill="none" points="383.692,144,363.692,137,383.692,130,383.692,144" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M406.58,220 C419.427,220 432.707,220 445.649,220 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="406.187,227,386.187,220,406.187,213,406.187,227" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M597.741,145.724 C630.38,150.531 670.369,156.42 701.031,160.936 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="706.256,161.705,697.9348,156.4364,701.3094,160.9765,696.7692,164.351,706.256,161.705" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="592.709,144.983,601.0299,150.252,597.6556,145.7117,602.1959,142.3374,592.709,144.983" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M634.34,196.325 C657.63,190.571 681.54,184.665 701.458,179.744 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A8003
 6" points="706.433,178.515,696.7364,176.7897,701.5789,179.7139,698.6547,184.5563,706.433,178.515" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="629.298,197.57,638.9944,199.296,634.1522,196.3714,637.0768,191.5292,629.298,197.57" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M387.447,304.122 C451.782,302.925 550.529,295.021 629,262 C667.296,245.885 703.753,214.181 726.223,192.07 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="382.104,304.208,391.1669,308.0635,387.1034,304.128,391.0388,300.0645,382.104,304.208" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M371.56,382.8023 C435.947,376.7315 548.008,359.2315 629,309 C676.941,279.267 715.548,224.034 735.087,192.238 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="366.244,383.2876,375.5702,386.4533,371.2233,382.8333,374.8433,378.4864,366.244,383.2876" style="stroke: #A80036; stroke-width: 1.0;"/></g></svg>
\ No newline at end of file
+<?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="498px" preserveAspectRatio="none" style="width:906px;height:498px;" version="1.1" viewBox="0 0 906 498" width="906px" zoomAndPan="magnify"><defs><filter height="300%" id="f1otzl8ai2ny4w" 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><!--class NodeStore--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="NodeStore" style="stroke: #A80036; stroke-width: 1.5;" width="92" x="90.2487" y="24"/><ellipse cx="105.2487" cy="40" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stro
 ke-width: 1.0;"/><path d="M101.1764,35.7651 L101.1764,33.6069 L108.5558,33.6069 L108.5558,35.7651 L106.0905,35.7651 L106.0905,43.8418 L108.5558,43.8418 L108.5558,46 L101.1764,46 L101.1764,43.8418 L103.6418,43.8418 L103.6418,35.7651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="60" x="119.2487" y="44.5352">NodeStore</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="91.2487" x2="181.2487" y1="56" y2="56"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="91.2487" x2="181.2487" y1="64" y2="64"/><!--class SegmentNodeStore--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="SegmentNodeStore" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="65.7487" y="107"/><ellipse cx="80.7487" cy="123" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M83.7218,128.6431 Q83.1408,128.9419 82.5016,129.0913 Q81.8625,129.2407 81.1569,129.2407 Q78.650
 1,129.2407 77.3302,127.5889 Q76.0104,125.937 76.0104,122.8159 Q76.0104,119.6865 77.3302,118.0347 Q78.6501,116.3828 81.1569,116.3828 Q81.8625,116.3828 82.5099,116.5322 Q83.1574,116.6816 83.7218,116.9805 L83.7218,119.7031 Q83.091,119.1221 82.4975,118.8523 Q81.904,118.5825 81.2731,118.5825 Q79.9284,118.5825 79.2436,119.6492 Q78.5588,120.7158 78.5588,122.8159 Q78.5588,124.9077 79.2436,125.9744 Q79.9284,127.041 81.2731,127.041 Q81.904,127.041 82.4975,126.7712 Q83.091,126.5015 83.7218,125.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="109" x="94.7487" y="127.5352">SegmentNodeStore</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="66.7487" x2="205.7487" y1="139" y2="139"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="66.7487" x2="205.7487" y1="147" y2="147"/><!--class SegmentStore--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="SegmentStore" style="stroke: #A80036; stroke-width: 1.5;"
  width="110" x="494.7487" y="149"/><ellipse cx="509.7487" cy="165" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M505.6764,160.7651 L505.6764,158.6069 L513.0558,158.6069 L513.0558,160.7651 L510.5905,160.7651 L510.5905,168.8418 L513.0558,168.8418 L513.0558,171 L505.6764,171 L505.6764,168.8418 L508.1418,168.8418 L508.1418,160.7651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="78" x="523.7487" y="169.5352">SegmentStore</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="495.7487" x2="603.7487" y1="181" y2="181"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="495.7487" x2="603.7487" y1="189" y2="189"/><!--class FileStore--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="FileStore" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="509.7487" y="232"/><ellipse cx="524.7487" cy="248" fill="#ADD1B2" rx="11" ry="11" style="stroke:
  #A80036; stroke-width: 1.0;"/><path d="M527.7218,253.6431 Q527.1408,253.9419 526.5016,254.0913 Q525.8625,254.2407 525.1569,254.2407 Q522.6501,254.2407 521.3302,252.5889 Q520.0104,250.937 520.0104,247.8159 Q520.0104,244.6865 521.3302,243.0347 Q522.6501,241.3828 525.1569,241.3828 Q525.8625,241.3828 526.5099,241.5322 Q527.1574,241.6816 527.7218,241.9805 L527.7218,244.7031 Q527.091,244.1221 526.4975,243.8523 Q525.904,243.5825 525.2731,243.5825 Q523.9284,243.5825 523.2436,244.6492 Q522.5588,245.7158 522.5588,247.8159 Q522.5588,249.9077 523.2436,250.9744 Q523.9284,252.041 525.2731,252.041 Q525.904,252.041 526.4975,251.7712 Q527.091,251.5015 527.7218,250.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="48" x="538.7487" y="252.5352">FileStore</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="510.7487" x2="588.7487" y1="264" y2="264"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="510.7487" x2="588.7487" y1="
 272" y2="272"/><!--class Revisions--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="Revisions" style="stroke: #A80036; stroke-width: 1.5;" width="85" x="93.7487" y="356"/><ellipse cx="108.7487" cy="372" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M104.6764,367.7651 L104.6764,365.6069 L112.0558,365.6069 L112.0558,367.7651 L109.5905,367.7651 L109.5905,375.8418 L112.0558,375.8418 L112.0558,378 L104.6764,378 L104.6764,375.8418 L107.1418,375.8418 L107.1418,367.7651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="53" x="122.7487" y="376.5352">Revisions</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="94.7487" x2="177.7487" y1="388" y2="388"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="94.7487" x2="177.7487" y1="396" y2="396"/><!--class TarRevisions--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="TarRevision
 s" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="298.2487" y="348"/><ellipse cx="313.2487" cy="364" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M316.2218,369.6431 Q315.6408,369.9419 315.0016,370.0913 Q314.3625,370.2407 313.6569,370.2407 Q311.1501,370.2407 309.8302,368.5889 Q308.5104,366.937 308.5104,363.8159 Q308.5104,360.6865 309.8302,359.0347 Q311.1501,357.3828 313.6569,357.3828 Q314.3625,357.3828 315.0099,357.5322 Q315.6574,357.6816 316.2218,357.9805 L316.2218,360.7031 Q315.591,360.1221 314.9975,359.8523 Q314.404,359.5825 313.7731,359.5825 Q312.4284,359.5825 311.7436,360.6492 Q311.0588,361.7158 311.0588,363.8159 Q311.0588,365.9077 311.7436,366.9744 Q312.4284,368.041 313.7731,368.041 Q314.404,368.041 314.9975,367.7712 Q315.591,367.5015 316.2218,366.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="327.2487" y="368.5352">TarRevisions</text><line style="strok
 e: #A80036; stroke-width: 1.5;" x1="299.2487" x2="402.2487" y1="380" y2="380"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="299.2487" x2="402.2487" y1="388" y2="388"/><!--class SegmentReader--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="SegmentReader" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="74.7487" y="439"/><ellipse cx="89.7487" cy="455" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M85.6764,450.7651 L85.6764,448.6069 L93.0558,448.6069 L93.0558,450.7651 L90.5905,450.7651 L90.5905,458.8418 L93.0558,458.8418 L93.0558,461 L85.6764,461 L85.6764,458.8418 L88.1418,458.8418 L88.1418,450.7651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="91" x="103.7487" y="459.5352">SegmentReader</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="75.7487" x2="196.7487" y1="471" y2="471"/><line style="stroke: #A80036; stroke-w
 idth: 1.5;" x1="75.7487" x2="196.7487" y1="479" y2="479"/><!--class CachingSegmentReader--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="CachingSegmentReader" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="266.7487" y="434"/><ellipse cx="281.7487" cy="450" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M284.7218,455.6431 Q284.1408,455.9419 283.5016,456.0913 Q282.8625,456.2407 282.1569,456.2407 Q279.6501,456.2407 278.3302,454.5889 Q277.0104,452.937 277.0104,449.8159 Q277.0104,446.6865 278.3302,445.0347 Q279.6501,443.3828 282.1569,443.3828 Q282.8625,443.3828 283.5099,443.5322 Q284.1574,443.6816 284.7218,443.9805 L284.7218,446.7031 Q284.091,446.1221 283.4975,445.8523 Q282.904,445.5825 282.2731,445.5825 Q280.9284,445.5825 280.2436,446.6492 Q279.5588,447.7158 279.5588,449.8159 Q279.5588,451.9077 280.2436,452.9744 Q280.9284,454.041 282.2731,454.041 Q282.904,454.041 283.4975,453.7712 Q284.091,453.5015 284.7218,452.9204 
 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="295.7487" y="454.5352">CachingSegmentReader</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="267.7487" x2="433.7487" y1="466" y2="466"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267.7487" x2="433.7487" y1="474" y2="474"/><!--class SegmentWriter--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="SegmentWriter" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="78.7487" y="190"/><ellipse cx="93.7487" cy="206" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M96.7218,211.6431 Q96.1408,211.9419 95.5016,212.0913 Q94.8625,212.2407 94.1569,212.2407 Q91.6501,212.2407 90.3302,210.5889 Q89.0104,208.937 89.0104,205.8159 Q89.0104,202.6865 90.3302,201.0347 Q91.6501,199.3828 94.1569,199.3828 Q94.8625,199.3828 95.5099,199.5322 Q96.1574,199.6816 96.7218,199.9805 L96.7218,202.7031 Q96.091,202.1221 95
 .4975,201.8523 Q94.904,201.5825 94.2731,201.5825 Q92.9284,201.5825 92.2436,202.6492 Q91.5588,203.7158 91.5588,205.8159 Q91.5588,207.9077 92.2436,208.9744 Q92.9284,210.041 94.2731,210.041 Q94.904,210.041 95.4975,209.7712 Q96.091,209.5015 96.7218,208.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="83" x="107.7487" y="210.5352">SegmentWriter</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="79.7487" x2="192.7487" y1="222" y2="222"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="79.7487" x2="192.7487" y1="230" y2="230"/><!--class BlobStore--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="BlobStore" style="stroke: #A80036; stroke-width: 1.5;" width="86" x="93.2487" y="273"/><ellipse cx="108.2487" cy="289" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M104.1764,284.7651 L104.1764,282.6069 L111.5558,282.6069 L111.5558,284.7651 L109.0905,284.7651 L10
 9.0905,292.8418 L111.5558,292.8418 L111.5558,295 L104.1764,295 L104.1764,292.8418 L106.6418,292.8418 L106.6418,284.7651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="54" x="122.2487" y="293.5352">BlobStore</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="94.2487" x2="178.2487" y1="305" y2="305"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="94.2487" x2="178.2487" y1="313" y2="313"/><!--class TarFiles--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="TarFiles" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="664.7487" y="232"/><ellipse cx="679.7487" cy="248" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M682.7218,253.6431 Q682.1408,253.9419 681.5016,254.0913 Q680.8625,254.2407 680.1569,254.2407 Q677.6501,254.2407 676.3302,252.5889 Q675.0104,250.937 675.0104,247.8159 Q675.0104,244.6865 676.3302,243.0347 Q677.6501,241.
 3828 680.1569,241.3828 Q680.8625,241.3828 681.5099,241.5322 Q682.1574,241.6816 682.7218,241.9805 L682.7218,244.7031 Q682.091,244.1221 681.4975,243.8523 Q680.904,243.5825 680.2731,243.5825 Q678.9284,243.5825 678.2436,244.6492 Q677.5588,245.7158 677.5588,247.8159 Q677.5588,249.9077 678.2436,250.9744 Q678.9284,252.041 680.2731,252.041 Q680.904,252.041 681.4975,251.7712 Q682.091,251.5015 682.7218,250.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="693.7487" y="252.5352">TarFiles</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="665.7487" x2="740.7487" y1="264" y2="264"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="665.7487" x2="740.7487" y1="272" y2="272"/><!--class TarReader--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="TarReader" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="801.7487" y="190"/><ellipse cx="816.7487" cy="206" fill="#ADD1B2" rx="11" ry="11" sty
 le="stroke: #A80036; stroke-width: 1.0;"/><path d="M819.7218,211.6431 Q819.1408,211.9419 818.5016,212.0913 Q817.8625,212.2407 817.1569,212.2407 Q814.6501,212.2407 813.3302,210.5889 Q812.0104,208.937 812.0104,205.8159 Q812.0104,202.6865 813.3302,201.0347 Q814.6501,199.3828 817.1569,199.3828 Q817.8625,199.3828 818.5099,199.5322 Q819.1574,199.6816 819.7218,199.9805 L819.7218,202.7031 Q819.091,202.1221 818.4975,201.8523 Q817.904,201.5825 817.2731,201.5825 Q815.9284,201.5825 815.2436,202.6492 Q814.5588,203.7158 814.5588,205.8159 Q814.5588,207.9077 815.2436,208.9744 Q815.9284,210.041 817.2731,210.041 Q817.904,210.041 818.4975,209.7712 Q819.091,209.5015 819.7218,208.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="830.7487" y="210.5352">TarReader</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="802.7487" x2="894.7487" y1="222" y2="222"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="802.7487" x2="894
 .7487" y1="230" y2="230"/><!--class TarWriter--><rect fill="#FEFECE" filter="url(#f1otzl8ai2ny4w)" height="48" id="TarWriter" style="stroke: #A80036; stroke-width: 1.5;" width="86" x="805.7487" y="273"/><ellipse cx="820.7487" cy="289" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M823.7218,294.6431 Q823.1408,294.9419 822.5016,295.0913 Q821.8625,295.2407 821.1569,295.2407 Q818.6501,295.2407 817.3302,293.5889 Q816.0104,291.937 816.0104,288.8159 Q816.0104,285.6865 817.3302,284.0347 Q818.6501,282.3828 821.1569,282.3828 Q821.8625,282.3828 822.5099,282.5322 Q823.1574,282.6816 823.7218,282.9805 L823.7218,285.7031 Q823.091,285.1221 822.4975,284.8523 Q821.904,284.5825 821.2731,284.5825 Q819.9284,284.5825 819.2436,285.6492 Q818.5588,286.7158 818.5588,288.8159 Q818.5588,290.9077 819.2436,291.9744 Q819.9284,293.041 821.2731,293.041 Q821.904,293.041 822.4975,292.7712 Q823.091,292.5015 823.7218,291.9204 Z "/><text fill="#000000" font-family="sans-serif" font
 -size="12" lengthAdjust="spacingAndGlyphs" textLength="54" x="834.7487" y="293.5352">TarWriter</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="806.7487" x2="890.7487" y1="305" y2="305"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="806.7487" x2="890.7487" y1="313" y2="313"/><!--link FileStore to TarFiles--><path d="M590.079,256 C611.3777,256 637.5476,256 659.3551,256 " fill="none" id="FileStore-TarFiles" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="664.511,256,655.511,252,659.511,256,655.511,260,664.511,256" style="stroke: #A80036; stroke-width: 1.0;"/><!--link TarFiles to TarReader--><path d="M754.3723,241.2427 C769.7486,236.8041 786.5426,231.9564 801.6456,227.5968 " fill="none" id="TarFiles-TarReader" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="741.858,244.855,748.732,247.034,753.3873,241.5269,746.5133,239.3479,741.858,244.855" style="stroke: #A80036; stroke-width: 1.0;"/><!--link TarFiles to TarW
 riter--><path d="M754.7683,270.5176 C771.3929,275.2022 789.6386,280.3436 805.5946,284.8397 " fill="none" id="TarFiles-TarWriter" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="741.858,266.8796,746.5482,272.357,753.4082,270.1344,748.718,264.6569,741.858,266.8796" style="stroke: #A80036; stroke-width: 1.0;"/><!--link SegmentNodeStore to NodeStore--><path d="M136.2487,106.6836 C136.2487,101.9378 136.2487,97.1919 136.2487,92.4461 " fill="none" id="SegmentNodeStore-NodeStore" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="129.2488,92.2987,136.2487,72.2987,143.2488,92.2986,129.2488,92.2987" style="stroke: #A80036; stroke-width: 1.0;"/><!--link FileStore to SegmentStore--><path d="M549.7487,231.6836 C549.7487,226.9378 549.7487,222.1919 549.7487,217.4461 " fill="none" id="FileStore-SegmentStore" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="542.7488,217.2987,549.7487,197.2987,556.7488,217.2986,542.7488,217.
 2987" style="stroke: #A80036; stroke-width: 1.0;"/><!--link NodeStore to SegmentStore--><!--link SegmentNodeStore to FileStore--><!--link SegmentNodeStore to Revisions--><path d="M65.565,154.5639 C50.4145,163.0928 36.3822,174.4687 27.7487,189.5 C-1.2496,239.9869 -1.2496,270.0131 27.7487,320.5 C40.7849,343.1965 65.9875,357.7663 88.8235,366.8039 " fill="none" id="SegmentNodeStore-Revisions" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="93.6553,368.6494,86.6751,361.7013,88.9844,366.8653,83.8205,369.1746,93.6553,368.6494" style="stroke: #A80036; stroke-width: 1.0;"/><!--link SegmentNodeStore to SegmentReader--><path d="M65.565,154.5639 C50.4145,163.0928 36.3822,174.4687 27.7487,189.5 C4.0631,230.7374 4.0631,362.2626 27.7487,403.5 C37.2357,420.0173 53.1662,432.2305 69.9388,441.1397 " fill="none" id="SegmentNodeStore-SegmentReader" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="74.6873,443.5658,68.4928,435.9089,70.2348,441.2908,
 64.8529,443.0329,74.6873,443.5658" style="stroke: #A80036; stroke-width: 1.0;"/><!--link SegmentNodeStore to SegmentWriter--><path d="M136.2487,155.2987 C136.2487,165.059 136.2487,174.8193 136.2487,184.5796 " fill="none" id="SegmentNodeStore-SegmentWriter" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="136.2487,189.6836,140.2487,180.6836,136.2487,184.6836,132.2487,180.6836,136.2487,189.6836" style="stroke: #A80036; stroke-width: 1.0;"/><!--link SegmentNodeStore to BlobStore--><path d="M65.565,154.5639 C50.4145,163.0928 36.3822,174.4687 27.7487,189.5 C17.1234,207.999 17.1234,219.001 27.7487,237.5 C40.685,260.0226 65.6019,274.5425 88.2981,283.5951 " fill="none" id="SegmentNodeStore-BlobStore" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="93.1024,285.4448,86.1407,278.4781,88.4363,283.6482,83.2662,285.9439,93.1024,285.4448" style="stroke: #A80036; stroke-width: 1.0;"/><!--link Revisions to TarRevisions--><path d="M198.9814,377
 .6603 C230.3998,376.4885 268.0149,375.0856 297.9369,373.9697 " fill="none" id="Revisions-TarRevisions" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="199.1304,384.6595,178.8834,378.4099,198.6086,370.6693,199.1304,384.6595" style="stroke: #A80036; stroke-width: 1.0;"/><!--link SegmentReader to CachingSegmentReader--><path d="M218.0084,461.0942 C233.9471,460.7226 250.683,460.3325 266.6946,459.9593 " fill="none" id="SegmentReader-CachingSegmentReader" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="218.1609,468.0924,198.0032,461.5605,217.8346,454.0962,218.1609,468.0924" style="stroke: #A80036; stroke-width: 1.0;"/><!--link TarRevisions to FileStore--><path d="M396.5058,345.3275 C429.0527,326.3554 472.5603,300.9942 504.9006,282.1426 " fill="none" id="TarRevisions-FileStore" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="509.5884,279.41,499.7986,280.4869,505.2688,281.9281,503.8275,287.3983,509.5884,279.41"
  style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="391.9816,347.9647,401.7714,346.8881,396.3013,345.4467,397.7427,339.9766,391.9816,347.9647" style="stroke: #A80036; stroke-width: 1.0;"/><!--link CachingSegmentReader to FileStore--><path d="M409.0675,431.1959 C418.1208,425.8097 427.0204,419.7129 434.7487,413 C478.0794,375.3621 514.5413,318.5444 534.1709,284.5737 " fill="none" id="CachingSegmentReader-FileStore" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="536.7122,280.1401,528.7663,285.9593,534.2258,284.4781,535.707,289.9375,536.7122,280.1401" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="404.6154,433.7826,414.4068,432.7199,408.9387,431.2708,410.3878,425.8027,404.6154,433.7826" style="stroke: #A80036; stroke-width: 1.0;"/><!--link SegmentWriter to FileStore--><path d="M199.2482,220.399 C285.3987,229.1495 437.4806,244.5967 509.6196,251.924 " fill="none" id="SegmentWriter-FileStore" style="stroke
 : #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="194.1794,219.8841,202.7291,224.7731,199.1538,220.3894,203.5376,216.8141,194.1794,219.8841" style="stroke: #A80036; stroke-width: 1.0;"/><!--link BlobStore to FileStore--><path d="M184.6344,292.2024 C267.0254,284.033 433.0497,267.5711 509.5169,259.9891 " fill="none" id="BlobStore-FileStore" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="179.3302,292.7283,188.681,295.8206,184.3058,292.2349,187.8915,287.8597,179.3302,292.7283" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+left to right direction
+
+together {
+  interface NodeStore
+  class SegmentNodeStore
+}
+
+interface Revisions
+class TarRevisions
+
+interface SegmentReader
+class CachingSegmentReader
+
+class SegmentWriter
+interface BlobStore
+
+together {
+  interface SegmentStore
+  class FileStore
+}
+
+class TarFiles
+FileStore - -> TarFiles
+
+class TarReader
+TarFiles *- - TarReader
+
+class TarWriter
+TarFiles *- - TarWriter
+
+SegmentNodeStore -|> NodeStore
+FileStore -|> SegmentStore
+
+NodeStore -[hidden]-> SegmentStore
+SegmentNodeStore -[hidden]- -> FileStore
+
+
+SegmentNodeStore -> Revisions
+SegmentNodeStore -> SegmentReader
+SegmentNodeStore -> SegmentWriter
+SegmentNodeStore -> BlobStore
+
+Revisions <|- - TarRevisions
+SegmentReader <|- - CachingSegmentReader
+TarRevisions <-> FileStore
+CachingSegmentReader <-> FileStore
+SegmentWriter <- FileStore
+BlobStore <- FileStore
+@enduml
+
+PlantUML version 1.2018.01(Sun Jan 28 19:08:22 CET 2018)
+(GPL source distribution)
+Java Runtime: Java(TM) SE Runtime Environment
+JVM: Java HotSpot(TM) 64-Bit Server VM
+Java Version: 9.0.1+11
+Operating System: Mac OS X
+OS Version: 10.12.6
+Default Encoding: UTF-8
+Language: en
+Country: CH
+--></g></svg>
\ No newline at end of file

Modified: jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.uml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.uml?rev=1825364&r1=1825363&r2=1825364&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.uml (original)
+++ jackrabbit/oak/branches/1.8/oak-doc/src/site/markdown/nodestore/segment/classes.uml Mon Feb 26 12:15:08 2018
@@ -43,10 +43,19 @@ together {
 SegmentNodeStore -|> NodeStore
 FileStore -|> SegmentStore
 
+together {
+    class TarFiles
+    class TarReader
+    class TarWriter
+}
+
+FileStore --> TarFiles
+TarFiles *-- TarReader
+TarFiles *-- TarWriter
+
 NodeStore -[hidden]-> SegmentStore
 SegmentNodeStore -[hidden]--> FileStore
 
-
 SegmentNodeStore -> Revisions
 SegmentNodeStore -> SegmentReader
 SegmentNodeStore -> SegmentWriter