зеркало из https://github.com/microsoft/AMBROSIA.git
README changes
This commit is contained in:
Родитель
91fd93c653
Коммит
ea738e0fa5
152
Architecture.svg
152
Architecture.svg
|
@ -2,8 +2,8 @@
|
|||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by Microsoft Visio, SVG Export Architecture.svg Page-1 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
|
||||
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="8.5in" height="11in" viewBox="0 0 612 792"
|
||||
xml:space="preserve" color-interpolation-filters="sRGB" class="st13">
|
||||
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="8.3941in" height="5.44479in"
|
||||
viewBox="0 0 604.375 392.025" xml:space="preserve" color-interpolation-filters="sRGB" class="st13">
|
||||
<v:documentProperties v:langID="1033" v:viewMarkup="false">
|
||||
<v:userDefs>
|
||||
<v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/>
|
||||
|
@ -46,7 +46,7 @@
|
|||
<v:pageProperties v:drawingScale="1" v:pageScale="1" v:drawingUnits="19" v:shadowOffsetX="9" v:shadowOffsetY="-9"/>
|
||||
<v:layer v:name="Flowchart" v:index="0"/>
|
||||
<v:layer v:name="Connector" v:index="1"/>
|
||||
<g id="group1-1" transform="translate(9,-549)" v:mID="1" v:groupContext="group">
|
||||
<g id="group1-1" transform="translate(18.75,-144.625)" v:mID="1" v:groupContext="group">
|
||||
<title>Sheet.1</title>
|
||||
<g id="shape2-2" v:mID="2" v:groupContext="shape" v:layerMember="0">
|
||||
<title>Disk storage</title>
|
||||
|
@ -58,10 +58,10 @@
|
|||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2 Z" class="st1"/>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2" class="st2"/>
|
||||
<path d="M0 745.2 A36 7.2 -180 1 0 72 745.2" class="st2"/>
|
||||
<path d="M0 748.8 A36 7.2 -180 1 0 72 748.8" class="st2"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22 Z" class="st1"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22" class="st2"/>
|
||||
<path d="M0 345.22 A36 7.2 -180 1 0 72 345.22" class="st2"/>
|
||||
<path d="M0 348.82 A36 7.2 -180 1 0 72 348.82" class="st2"/>
|
||||
</g>
|
||||
<g id="shape3-7" v:mID="3" v:groupContext="shape" v:layerMember="0" transform="translate(18,0)">
|
||||
<title>Disk storage.6</title>
|
||||
|
@ -73,10 +73,10 @@
|
|||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2 Z" class="st1"/>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2" class="st2"/>
|
||||
<path d="M0 745.2 A36 7.2 -180 1 0 72 745.2" class="st2"/>
|
||||
<path d="M0 748.8 A36 7.2 -180 1 0 72 748.8" class="st2"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22 Z" class="st1"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22" class="st2"/>
|
||||
<path d="M0 345.22 A36 7.2 -180 1 0 72 345.22" class="st2"/>
|
||||
<path d="M0 348.82 A36 7.2 -180 1 0 72 348.82" class="st2"/>
|
||||
</g>
|
||||
<g id="shape4-12" v:mID="4" v:groupContext="shape" v:layerMember="0" transform="translate(36,0)">
|
||||
<title>Disk storage.7</title>
|
||||
|
@ -88,24 +88,24 @@
|
|||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2 Z" class="st1"/>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2" class="st2"/>
|
||||
<path d="M0 745.2 A36 7.2 -180 1 0 72 745.2" class="st2"/>
|
||||
<path d="M0 748.8 A36 7.2 -180 1 0 72 748.8" class="st2"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22 Z" class="st1"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22" class="st2"/>
|
||||
<path d="M0 345.22 A36 7.2 -180 1 0 72 345.22" class="st2"/>
|
||||
<path d="M0 348.82 A36 7.2 -180 1 0 72 348.82" class="st2"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape5-17" v:mID="5" v:groupContext="shape" transform="translate(135,-657)">
|
||||
<g id="shape5-17" v:mID="5" v:groupContext="shape" transform="translate(144.75,-252.625)">
|
||||
<title>Rectangle.42</title>
|
||||
<desc>Immortal Coordinator</desc>
|
||||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<v:textBlock v:margins="rect(4,4,4,4)"/>
|
||||
<v:textRect cx="67.5" cy="756" width="135" height="72"/>
|
||||
<rect x="0" y="720" width="135" height="72" class="st3"/>
|
||||
<text x="22.27" y="748.8" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Immortal <tspan
|
||||
<v:textRect cx="67.5" cy="356.025" width="135" height="72"/>
|
||||
<rect x="0" y="320.025" width="135" height="72" class="st3"/>
|
||||
<text x="22.27" y="348.82" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Immortal <tspan
|
||||
x="8.62" dy="1.2em" class="st5">Coordinator</tspan></text> </g>
|
||||
<g id="group6-21" transform="translate(306,-549)" v:mID="6" v:groupContext="group">
|
||||
<g id="group6-21" transform="translate(315.75,-144.625)" v:mID="6" v:groupContext="group">
|
||||
<title>Sheet.6</title>
|
||||
<g id="shape7-22" v:mID="7" v:groupContext="shape" v:layerMember="0">
|
||||
<title>Disk storage</title>
|
||||
|
@ -117,10 +117,10 @@
|
|||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2 Z" class="st1"/>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2" class="st2"/>
|
||||
<path d="M0 745.2 A36 7.2 -180 1 0 72 745.2" class="st2"/>
|
||||
<path d="M0 748.8 A36 7.2 -180 1 0 72 748.8" class="st2"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22 Z" class="st1"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22" class="st2"/>
|
||||
<path d="M0 345.22 A36 7.2 -180 1 0 72 345.22" class="st2"/>
|
||||
<path d="M0 348.82 A36 7.2 -180 1 0 72 348.82" class="st2"/>
|
||||
</g>
|
||||
<g id="shape8-27" v:mID="8" v:groupContext="shape" v:layerMember="0" transform="translate(18,0)">
|
||||
<title>Disk storage.6</title>
|
||||
|
@ -132,10 +132,10 @@
|
|||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2 Z" class="st1"/>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2" class="st2"/>
|
||||
<path d="M0 745.2 A36 7.2 -180 1 0 72 745.2" class="st2"/>
|
||||
<path d="M0 748.8 A36 7.2 -180 1 0 72 748.8" class="st2"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22 Z" class="st1"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22" class="st2"/>
|
||||
<path d="M0 345.22 A36 7.2 -180 1 0 72 345.22" class="st2"/>
|
||||
<path d="M0 348.82 A36 7.2 -180 1 0 72 348.82" class="st2"/>
|
||||
</g>
|
||||
<g id="shape9-32" v:mID="9" v:groupContext="shape" v:layerMember="0" transform="translate(36,0)">
|
||||
<title>Disk storage.7</title>
|
||||
|
@ -147,24 +147,24 @@
|
|||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2 Z" class="st1"/>
|
||||
<path d="M0 745.2 L0 784.8 A36 7.2 -180 1 0 72 784.8 L72 745.2 A36 7.2 -180 0 0 0 745.2" class="st2"/>
|
||||
<path d="M0 745.2 A36 7.2 -180 1 0 72 745.2" class="st2"/>
|
||||
<path d="M0 748.8 A36 7.2 -180 1 0 72 748.8" class="st2"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22 Z" class="st1"/>
|
||||
<path d="M0 345.22 L0 384.82 A36 7.2 -180 1 0 72 384.82 L72 345.22 A36 7.2 -180 0 0 0 345.22" class="st2"/>
|
||||
<path d="M0 345.22 A36 7.2 -180 1 0 72 345.22" class="st2"/>
|
||||
<path d="M0 348.82 A36 7.2 -180 1 0 72 348.82" class="st2"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape10-37" v:mID="10" v:groupContext="shape" transform="translate(432,-657)">
|
||||
<g id="shape10-37" v:mID="10" v:groupContext="shape" transform="translate(441.75,-252.625)">
|
||||
<title>Rectangle.50</title>
|
||||
<desc>Immortal Coordinator</desc>
|
||||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<v:textBlock v:margins="rect(4,4,4,4)"/>
|
||||
<v:textRect cx="67.5" cy="756" width="135" height="72"/>
|
||||
<rect x="0" y="720" width="135" height="72" class="st3"/>
|
||||
<text x="22.27" y="748.8" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Immortal <tspan
|
||||
<v:textRect cx="67.5" cy="356.025" width="135" height="72"/>
|
||||
<rect x="0" y="320.025" width="135" height="72" class="st3"/>
|
||||
<text x="22.27" y="348.82" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Immortal <tspan
|
||||
x="8.62" dy="1.2em" class="st5">Coordinator</tspan></text> </g>
|
||||
<g id="group11-41" transform="translate(141.75,-435)" v:mID="11" v:groupContext="group">
|
||||
<g id="group11-41" transform="translate(151.5,-30.625)" v:mID="11" v:groupContext="group">
|
||||
<title>Sheet.11</title>
|
||||
<g id="group12-42" transform="translate(0,-1.5)" v:mID="12" v:groupContext="group">
|
||||
<title>Sheet.12</title>
|
||||
|
@ -175,19 +175,19 @@
|
|||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<v:textBlock v:margins="rect(4,4,4,4)"/>
|
||||
<v:textRect cx="60.75" cy="771.75" width="121.5" height="40.5"/>
|
||||
<rect x="0" y="751.5" width="121.5" height="40.5" class="st6"/>
|
||||
<text x="5.46" y="778.95" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Application</text> </g>
|
||||
<v:textRect cx="60.75" cy="371.775" width="121.5" height="40.5"/>
|
||||
<rect x="0" y="351.525" width="121.5" height="40.5" class="st6"/>
|
||||
<text x="5.46" y="378.97" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Application</text> </g>
|
||||
<g id="shape14-46" v:mID="14" v:groupContext="shape" transform="translate(0,-40.5)">
|
||||
<title>Rectangle.51</title>
|
||||
<desc>Ambrosia Binding</desc>
|
||||
<desc>AMBROSIA Binding</desc>
|
||||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<v:textBlock v:margins="rect(4,4,4,4)"/>
|
||||
<v:textRect cx="60.75" cy="765" width="121.5" height="54"/>
|
||||
<rect x="0" y="738" width="121.5" height="54" class="st6"/>
|
||||
<text x="14.21" y="757.8" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Ambrosia <tspan
|
||||
<v:textRect cx="60.75" cy="365.025" width="121.5" height="54"/>
|
||||
<rect x="0" y="338.025" width="121.5" height="54" class="st6"/>
|
||||
<text x="7.08" y="357.82" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>AMBROSIA <tspan
|
||||
x="24.15" dy="1.2em" class="st5">Binding</tspan></text> </g>
|
||||
</g>
|
||||
<g id="shape15-50" v:mID="15" v:groupContext="shape">
|
||||
|
@ -195,10 +195,10 @@
|
|||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<rect x="0" y="696" width="121.5" height="96" class="st7"/>
|
||||
<rect x="0" y="296.025" width="121.5" height="96" class="st7"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="group16-52" transform="translate(438.75,-435)" v:mID="16" v:groupContext="group">
|
||||
<g id="group16-52" transform="translate(448.5,-30.625)" v:mID="16" v:groupContext="group">
|
||||
<title>Sheet.16</title>
|
||||
<g id="group17-53" transform="translate(0,-1.5)" v:mID="17" v:groupContext="group">
|
||||
<title>Sheet.17</title>
|
||||
|
@ -209,19 +209,19 @@
|
|||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<v:textBlock v:margins="rect(4,4,4,4)"/>
|
||||
<v:textRect cx="60.75" cy="771.75" width="121.5" height="40.5"/>
|
||||
<rect x="0" y="751.5" width="121.5" height="40.5" class="st6"/>
|
||||
<text x="5.46" y="778.95" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Application</text> </g>
|
||||
<v:textRect cx="60.75" cy="371.775" width="121.5" height="40.5"/>
|
||||
<rect x="0" y="351.525" width="121.5" height="40.5" class="st6"/>
|
||||
<text x="5.46" y="378.97" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Application</text> </g>
|
||||
<g id="shape19-57" v:mID="19" v:groupContext="shape" transform="translate(0,-40.5)">
|
||||
<title>Rectangle.51</title>
|
||||
<desc>Ambrosia Binding</desc>
|
||||
<desc>AMBROSIA Binding</desc>
|
||||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<v:textBlock v:margins="rect(4,4,4,4)"/>
|
||||
<v:textRect cx="60.75" cy="765" width="121.5" height="54"/>
|
||||
<rect x="0" y="738" width="121.5" height="54" class="st6"/>
|
||||
<text x="14.21" y="757.8" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Ambrosia <tspan
|
||||
<v:textRect cx="60.75" cy="365.025" width="121.5" height="54"/>
|
||||
<rect x="0" y="338.025" width="121.5" height="54" class="st6"/>
|
||||
<text x="7.08" y="357.82" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>AMBROSIA <tspan
|
||||
x="24.15" dy="1.2em" class="st5">Binding</tspan></text> </g>
|
||||
</g>
|
||||
<g id="shape20-61" v:mID="20" v:groupContext="shape">
|
||||
|
@ -229,56 +229,56 @@
|
|||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<rect x="0" y="696" width="121.5" height="96" class="st7"/>
|
||||
<rect x="0" y="296.025" width="121.5" height="96" class="st7"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape21-63" v:mID="21" v:groupContext="shape" v:layerMember="1" transform="translate(193.5,-657)">
|
||||
<g id="shape21-63" v:mID="21" v:groupContext="shape" v:layerMember="1" transform="translate(203.25,-252.625)">
|
||||
<title>Dynamic connector.61</title>
|
||||
<path d="M9 799.55 L9 799.91 L9 910.09" class="st8"/>
|
||||
<path d="M9 399.57 L9 399.93 L9 510.11" class="st8"/>
|
||||
</g>
|
||||
<g id="shape22-74" v:mID="22" v:groupContext="shape" v:layerMember="1" transform="translate(270,-684)">
|
||||
<g id="shape22-74" v:mID="22" v:groupContext="shape" v:layerMember="1" transform="translate(279.75,-279.625)">
|
||||
<title>Dynamic connector.63</title>
|
||||
<path d="M7.55 783 L7.91 783 L154.09 783" class="st8"/>
|
||||
<path d="M7.55 383.02 L7.91 383.02 L154.09 383.02" class="st8"/>
|
||||
</g>
|
||||
<g id="shape23-81" v:mID="23" v:groupContext="shape" v:layerMember="1" transform="translate(490.5,-657)">
|
||||
<g id="shape23-81" v:mID="23" v:groupContext="shape" v:layerMember="1" transform="translate(500.25,-252.625)">
|
||||
<title>Dynamic connector.64</title>
|
||||
<path d="M9 799.55 L9 799.91 L9 910.09" class="st8"/>
|
||||
<path d="M9 399.57 L9 399.93 L9 510.11" class="st8"/>
|
||||
</g>
|
||||
<g id="shape24-88" v:mID="24" v:groupContext="shape" v:layerMember="1" transform="translate(135,-657)">
|
||||
<g id="shape24-88" v:mID="24" v:groupContext="shape" v:layerMember="1" transform="translate(144.75,-252.625)">
|
||||
<title>Dynamic connector.66</title>
|
||||
<path d="M-7.55 792 L-7.91 792 L-72 792 L-72 838.09" class="st8"/>
|
||||
<path d="M-7.55 392.02 L-7.91 392.02 L-72 392.02 L-72 438.11" class="st8"/>
|
||||
</g>
|
||||
<g id="shape25-95" v:mID="25" v:groupContext="shape" v:layerMember="1" transform="translate(432,-657)">
|
||||
<g id="shape25-95" v:mID="25" v:groupContext="shape" v:layerMember="1" transform="translate(441.75,-252.625)">
|
||||
<title>Dynamic connector.68</title>
|
||||
<path d="M-7.55 792 L-7.91 792 L-54 792 L-54 838.09" class="st8"/>
|
||||
<path d="M-7.55 392.02 L-7.91 392.02 L-54 392.02 L-54 438.11" class="st8"/>
|
||||
</g>
|
||||
<g id="shape26-102" v:mID="26" v:groupContext="shape" transform="translate(126,-423)">
|
||||
<g id="shape26-102" v:mID="26" v:groupContext="shape" transform="translate(135.75,-18.625)">
|
||||
<title>Rectangle.71</title>
|
||||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<rect x="0" y="468" width="153" height="324" class="st10"/>
|
||||
<rect x="0" y="68.0247" width="153" height="324" class="st10"/>
|
||||
</g>
|
||||
<g id="shape27-104" v:mID="27" v:groupContext="shape" transform="translate(423,-423)">
|
||||
<g id="shape27-104" v:mID="27" v:groupContext="shape" transform="translate(432.75,-18.625)">
|
||||
<title>Rectangle.72</title>
|
||||
<v:userDefs>
|
||||
<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
|
||||
</v:userDefs>
|
||||
<rect x="0" y="468" width="153" height="324" class="st10"/>
|
||||
<rect x="0" y="68.0247" width="153" height="324" class="st10"/>
|
||||
</g>
|
||||
<g id="shape28-106" v:mID="28" v:groupContext="shape" transform="translate(127,-754)">
|
||||
<g id="shape28-106" v:mID="28" v:groupContext="shape" transform="translate(136.75,-349.625)">
|
||||
<title>Sheet.28</title>
|
||||
<desc>Immortal 1</desc>
|
||||
<v:textBlock v:margins="rect(4,4,4,4)"/>
|
||||
<v:textRect cx="76" cy="782" width="152" height="20"/>
|
||||
<rect x="0" y="772" width="152" height="20" class="st11"/>
|
||||
<text x="20.73" y="789.2" class="st12" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Immortal 1</text> </g>
|
||||
<g id="shape29-109" v:mID="29" v:groupContext="shape" transform="translate(423,-754)">
|
||||
<v:textRect cx="76" cy="382.025" width="152" height="20"/>
|
||||
<rect x="0" y="372.025" width="152" height="20" class="st11"/>
|
||||
<text x="20.73" y="389.22" class="st12" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Immortal 1</text> </g>
|
||||
<g id="shape29-109" v:mID="29" v:groupContext="shape" transform="translate(432.75,-349.625)">
|
||||
<title>Sheet.29</title>
|
||||
<desc>Immortal 2</desc>
|
||||
<v:textBlock v:margins="rect(4,4,4,4)"/>
|
||||
<v:textRect cx="76" cy="782" width="152" height="20"/>
|
||||
<rect x="0" y="772" width="152" height="20" class="st11"/>
|
||||
<text x="20.73" y="789.2" class="st12" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Immortal 2</text> </g>
|
||||
<v:textRect cx="76" cy="382.025" width="152" height="20"/>
|
||||
<rect x="0" y="372.025" width="152" height="20" class="st11"/>
|
||||
<text x="20.73" y="389.22" class="st12" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Immortal 2</text> </g>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
До Ширина: | Высота: | Размер: 15 KiB После Ширина: | Высота: | Размер: 15 KiB |
79
README.md
79
README.md
|
@ -38,9 +38,9 @@ Table of Contents
|
|||
* [Getting started]()
|
||||
* [Windows]()
|
||||
* [Kubernetes]()
|
||||
* [Reference]()
|
||||
* [Language Support]()
|
||||
* [Usage]()
|
||||
* [Reference](#reference)
|
||||
* [Language Support](#language-support)
|
||||
* [Usage](#usage)
|
||||
|
||||
## AMBROSIA Concepts
|
||||
|
||||
|
@ -58,14 +58,19 @@ The basic building blocks of AMBROSIA are *Immortals*, reliable distributed obje
|
|||
## How it works
|
||||
The figure below outlines the basic architecture of an AMBROSIA application, showing two communicating AMBROSIA services, called Immortals. Each inner box in the figure represents a separate process running as part of the Immortal. Each instance of an Immortal exists as a software object and thread of control running inside of an application process. An Immortal instance communicates with other Immortal instances through an *Immortal Coordinator* process, which durably logs the instance's RPCs and encapsulates the low-level networking required to send RPCs. The position of requests in the log determines the order in which they are submitted to the application process for execution and then re-execution upon recovery.
|
||||
|
||||
FINISHME - Add architecture diagram of immortal and immortal coordinator
|
||||
![Ambrosia Architecture](Architecture.svg)
|
||||
|
||||
In addition, the language specific AMBROSIA binding provides a state serializer. To avoid replaying from the start of the service during recovery, the Immortal Coordinator occasionally checkpoints the state of the Immortal, which includes the application state. The way this serialization is provided can vary from language to language, or even amongst bindings for the same language.
|
||||
|
||||
## Features
|
||||
Here is a list of features that AMBROSIA provides to application developers:
|
||||
Here is a list of features that AMBROSIA provides to application developers and deployers:
|
||||
|
||||
FINISHME - feature list
|
||||
* Register Instance, Add Replica
|
||||
* Debug Instance
|
||||
* Active Active
|
||||
* Live Upgrades, Test Upgrades
|
||||
* RPC
|
||||
* Asynchronous RPC (beta)
|
||||
|
||||
Quick Start: Fetch a binary distribution
|
||||
----------------------------------------
|
||||
|
@ -89,3 +94,65 @@ Running a Sample
|
|||
----------------
|
||||
|
||||
FINISHME - AmbrosiaDocs.md content will move here!!
|
||||
|
||||
## Reference
|
||||
|
||||
### Language Support
|
||||
AMBROSIA currently supports C# on both .NET Core and .NET Framework. We plan to exand this support with AMBROSIA bindings for other languages in the future.
|
||||
|
||||
### Usage
|
||||
```
|
||||
Usage: Ambrosia.exe RegisterInstance [OPTIONS]
|
||||
Options:
|
||||
-i, --instanceName=VALUE The instance name [REQUIRED].
|
||||
--rp, --receivePort=VALUE
|
||||
The service receive from port [REQUIRED].
|
||||
--sp, --sendPort=VALUE The service send to port. [REQUIRED]
|
||||
-l, --log=VALUE The service log path.
|
||||
--cs, --createService=VALUE
|
||||
[A - AutoRecovery | N - NoRecovery | Y -
|
||||
AlwaysRecover].
|
||||
--ps, --pauseAtStart Is pause at start enabled.
|
||||
--npl, --noPersistLogs Is persistent logging disabled.
|
||||
--lts, --logTriggerSize=VALUE
|
||||
Log trigger size (in MBs).
|
||||
--aa, --activeActive Is active-active enabled.
|
||||
--cv, --currentVersion=VALUE
|
||||
The current version #.
|
||||
--uv, --upgradeVersion=VALUE
|
||||
The upgrade version #.
|
||||
-h, --help show this message and exit
|
||||
Usage: Ambrosia.exe AddReplica [OPTIONS]
|
||||
Options:
|
||||
-r, --replicaNum=VALUE The replica # [REQUIRED].
|
||||
-i, --instanceName=VALUE The instance name [REQUIRED].
|
||||
--rp, --receivePort=VALUE
|
||||
The service receive from port [REQUIRED].
|
||||
--sp, --sendPort=VALUE The service send to port. [REQUIRED]
|
||||
-l, --log=VALUE The service log path.
|
||||
--cs, --createService=VALUE
|
||||
[A - AutoRecovery | N - NoRecovery | Y -
|
||||
AlwaysRecover].
|
||||
--ps, --pauseAtStart Is pause at start enabled.
|
||||
--npl, --noPersistLogs Is persistent logging disabled.
|
||||
--lts, --logTriggerSize=VALUE
|
||||
Log trigger size (in MBs).
|
||||
--aa, --activeActive Is active-active enabled.
|
||||
--cv, --currentVersion=VALUE
|
||||
The current version #.
|
||||
--uv, --upgradeVersion=VALUE
|
||||
The upgrade version #.
|
||||
-h, --help show this message and exit
|
||||
Usage: Ambrosia.exe DebugInstance [OPTIONS]
|
||||
Options:
|
||||
-i, --instanceName=VALUE The instance name [REQUIRED].
|
||||
--rp, --receivePort=VALUE
|
||||
The service receive from port [REQUIRED].
|
||||
--sp, --sendPort=VALUE The service send to port. [REQUIRED]
|
||||
-l, --log=VALUE The service log path.
|
||||
-c, --checkpoint=VALUE The checkpoint # to load.
|
||||
--cv, --currentVersion=VALUE
|
||||
The version # to debug.
|
||||
--tu, --testingUpgrade Is testing upgrade.
|
||||
-h, --help show this message and exit
|
||||
```
|
Загрузка…
Ссылка в новой задаче