changeset 61:e7961c306d28

DGM
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Tue, 06 Feb 2024 18:57:11 +0900
parents 6c5965c3539e
children 11c4ce8fe127
files Paper/fig/dgm.drawio Paper/fig/dgm.png Paper/master_paper.lol Paper/master_paper.pdf Paper/master_paper.tex Paper/src/swap.cbc mindmaps/gears_fs_db.mm
diffstat 7 files changed, 127 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/dgm.drawio	Tue Feb 06 18:57:11 2024 +0900
@@ -0,0 +1,78 @@
+<mxfile host="65bd71144e">
+    <diagram id="SFSeneWJ8bgBVdnMu0TX" name="Page-1">
+        <mxGraphModel dx="938" dy="648" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+            <root>
+                <mxCell id="0"/>
+                <mxCell id="1" parent="0"/>
+                <mxCell id="22" value="" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=none;dashed=1;" vertex="1" parent="1">
+                    <mxGeometry x="120" y="250" width="190" height="240" as="geometry"/>
+                </mxCell>
+                <mxCell id="23" value="" style="rounded=0;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=none;dashed=1;" vertex="1" parent="1">
+                    <mxGeometry x="370" y="250" width="260" height="240" as="geometry"/>
+                </mxCell>
+                <mxCell id="12" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#CCCCCC;verticalAlign=top;" vertex="1" parent="1">
+                    <mxGeometry x="280" y="415" width="120" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="9" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#CCCCCC;" vertex="1" parent="1">
+                    <mxGeometry x="280" y="295" width="120" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="6" style="edgeStyle=none;html=1;" edge="1" parent="1" source="2" target="4">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="7" value="File Data" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="6">
+                    <mxGeometry x="0.1969" y="-2" relative="1" as="geometry">
+                        <mxPoint x="-12" y="-2" as="offset"/>
+                    </mxGeometry>
+                </mxCell>
+                <mxCell id="2" value="Remote DGM" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+                    <mxGeometry x="160" y="280" width="120" height="60" as="geometry"/>
+                </mxCell>
+                <mxCell id="8" value="Result" style="edgeStyle=none;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="5">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="3" value="Remote DGM" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+                    <mxGeometry x="400" y="400" width="120" height="60" as="geometry"/>
+                </mxCell>
+                <mxCell id="26" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=none;" edge="1" parent="1" source="4" target="18">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="4" value="Local DGM" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+                    <mxGeometry x="400" y="280" width="120" height="60" as="geometry"/>
+                </mxCell>
+                <mxCell id="5" value="Local DGM" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+                    <mxGeometry x="160" y="400" width="120" height="60" as="geometry"/>
+                </mxCell>
+                <mxCell id="15" value="Socket" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;labelBackgroundColor=none;" vertex="1" parent="1">
+                    <mxGeometry x="310" y="270" width="60" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="16" value="Socket" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;labelBackgroundColor=none;" vertex="1" parent="1">
+                    <mxGeometry x="310" y="390" width="60" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="27" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="18" target="3">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="18" value="WordCount" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+                    <mxGeometry x="540" y="350" width="80" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="19" value="" style="endArrow=classic;html=1;labelBackgroundColor=none;" edge="1" parent="1">
+                    <mxGeometry width="50" height="50" relative="1" as="geometry">
+                        <mxPoint x="130" y="310" as="sourcePoint"/>
+                        <mxPoint x="160" y="310" as="targetPoint"/>
+                    </mxGeometry>
+                </mxCell>
+                <mxCell id="20" value="Put" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;labelBackgroundColor=none;" vertex="1" parent="1">
+                    <mxGeometry x="110" y="290" width="60" height="20" as="geometry"/>
+                </mxCell>
+                <mxCell id="24" value="Node A" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;dashed=1;labelBackgroundColor=none;" vertex="1" parent="1">
+                    <mxGeometry x="185" y="220" width="60" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="25" value="Node B" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;dashed=1;labelBackgroundColor=none;" vertex="1" parent="1">
+                    <mxGeometry x="470" y="220" width="60" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="28" value="Put" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;labelBackgroundColor=none;" vertex="1" parent="1">
+                    <mxGeometry x="550" y="430" width="60" height="20" as="geometry"/>
+                </mxCell>
+            </root>
+        </mxGraphModel>
+    </diagram>
+</mxfile>
\ No newline at end of file
Binary file Paper/fig/dgm.png has changed
--- a/Paper/master_paper.lol	Mon Feb 05 16:39:36 2024 +0900
+++ b/Paper/master_paper.lol	Tue Feb 06 18:57:11 2024 +0900
@@ -8,8 +8,9 @@
 \contentsline {lstlisting}{\numberline {3.7}RedBlackTreeの実装の型定義}{16}{}%
 \contentsline {lstlisting}{\numberline {3.8}Nodeの型定義}{17}{}%
 \contentsline {lstlisting}{\numberline {3.9}ALLOCATEの定義}{18}{}%
-\contentsline {lstlisting}{\numberline {5.1}実行するCodeGearの切り替えのコード}{29}{}%
-\contentsline {lstlisting}{\numberline {6.1}Tree Interfaceの使用定義(Copy追加後)}{32}{}%
-\contentsline {lstlisting}{\numberline {6.2}RedBlackTreeの実装の型定義(Copy追加後)}{32}{}%
-\contentsline {lstlisting}{\numberline {6.3}leftDown1 CodeGear(アロケーション部分の例)}{34}{}%
-\contentsline {lstlisting}{\numberline {6.4}ビルド時に生成されたALLOCATE部分}{35}{}%
+\contentsline {lstlisting}{\numberline {5.1}実行するCodeGearの切り替えのコード}{30}{}%
+\contentsline {lstlisting}{\numberline {6.1}Tree Interfaceの使用定義(Copy追加後)}{33}{}%
+\contentsline {lstlisting}{\numberline {6.2}RedBlackTreeの実装の型定義(Copy追加後)}{33}{}%
+\contentsline {lstlisting}{\numberline {6.3}leftDown1 CodeGear(アロケーション部分の例)}{35}{}%
+\contentsline {lstlisting}{\numberline {6.4}ビルド時に生成されたALLOCATE部分}{36}{}%
+\contentsline {lstlisting}{\numberline {6.5}swap2 CodeGear(木の入れ替え処理部分)}{37}{}%
Binary file Paper/master_paper.pdf has changed
--- a/Paper/master_paper.tex	Mon Feb 05 16:39:36 2024 +0900
+++ b/Paper/master_paper.tex	Tue Feb 06 18:57:11 2024 +0900
@@ -600,8 +600,27 @@
 
 \section{DataGearManagerによる分散ファイルシステム}
 
-本研究室では,一木 貴裕\cite{cfile}GearsOSの分散ファイルシステム設計が行われた.
+本研究室では,一木 貴裕\cite{cfile}GearsOSの分散ファイルシステム設計が行われ,
+GearsOSの分散ファイルシステムに必要なDataGearManagerの通信路の実装がされた.
+DataGearManager(以下DGMとする)はノード間でDataGearのやり取りをするための通信路を構成するための仕組みである.
+図\ref{fig:DGM}にDGMのSocket通信によるWordCount例題の動作を示す.
+DGMはRemoteDGMとLocalDGMがペアとなり,
+RemoteDGMが送信先ノードのLocalDGMに接続することでDataGearの送信を可能にする.
+RemoteからLocalへの片側方向通信となるため,相互通信したい際は2ペアで構成する.
+この際の接続はC言語のSocketインターフェースを使用している.
+Node BのLocal DGMが受け取ったファイルのデータをWordCountのCodeGearが処理をし,
+Node AのLocalDGMに接続されたRemoteDGMに処理結果をPutすることで,
+Node Aに処理結果を返している.
+このように,別Nodeからデータを受け取り,
+そのデータをしょりして受け取り元に処理結果などを返すことが可能な仕組みである.
 
+\begin{figure}[ht]
+  \begin{center}
+      \includegraphics[width=150mm]{fig/dgm.png}
+  \end{center}
+  \caption{DGMのSocket通信によるWordCount例題}
+  \label{fig:DGM}
+\end{figure}
 
 \chapter{GearsFileSystemにおけるGCとレプリケーション}
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/src/swap.cbc	Tue Feb 06 18:57:11 2024 +0900
@@ -0,0 +1,12 @@
+__code swap2(struct RedBlackTree* tree, struct Stack* stack, __code next(...)) {
+    printf("swap2\n");
+    struct Node* toTree = (Node*)(stack->data);
+    struct RedBlackTree* newRedBlackTree = new RedBlackTree();
+    newRedBlackTree->root = toTree;
+    newRedBlackTree->current = toTree;
+    tree = newRedBlackTree;
+    
+    printf("copied\n");
+
+    goto next(...);
+}
\ No newline at end of file
--- a/mindmaps/gears_fs_db.mm	Mon Feb 05 16:39:36 2024 +0900
+++ b/mindmaps/gears_fs_db.mm	Tue Feb 06 18:57:11 2024 +0900
@@ -1,6 +1,6 @@
 <map version="freeplane 1.9.8">
 <!--To view this file, download free mind mapping software Freeplane from https://www.freeplane.org -->
-<node TEXT="GearsOS上のファイルシステムとDBの信頼性(仮)" FOLDED="false" ID="ID_452131666" CREATED="1610381621610" MODIFIED="1706691080676" STYLE="oval">
+<node TEXT="GearsOS上のファイルシステムとDBの信頼性(仮)" FOLDED="false" ID="ID_452131666" CREATED="1610381621610" MODIFIED="1707115980864" STYLE="oval">
 <font SIZE="18"/>
 <hook NAME="MapStyle" zoom="0.8">
     <properties edgeColorConfiguration="#808080ff,#ff0000ff,#0000ffff,#00ff00ff,#ff00ffff,#00ffffff,#7c0000ff,#00007cff,#007c00ff,#7c007cff,#007c7cff,#7c7c00ff" associatedTemplateLocation="template:/standard-1.6-noEdgeColor.mm" fit_to_viewport="false"/>
@@ -771,11 +771,16 @@
 </node>
 <node TEXT="DataGearManagerによる分散ファイルシステム" POSITION="right" ID="ID_1005780153" CREATED="1703315001066" MODIFIED="1706679671263" HGAP_QUANTITY="10.25 pt" VSHIFT_QUANTITY="-8.25 pt">
 <node TEXT="ikkiさんの研究" ID="ID_557379148" CREATED="1704630869165" MODIFIED="1704630876474"/>
+<node TEXT="Christieを参考にしている" ID="ID_703384422" CREATED="1704631982827" MODIFIED="1707116511976"/>
 <node TEXT="DataGearManager" ID="ID_521285238" CREATED="1705646099321" MODIFIED="1705646107853">
-<node TEXT="" ID="ID_1859471968" CREATED="1705646108176" MODIFIED="1705646108176"/>
+<node TEXT="DataGearのPoolをノード間で接続" ID="ID_1859471968" CREATED="1705646108176" MODIFIED="1707116184443"/>
+<node TEXT="Take,Putでデータの取得追加を行う" ID="ID_1980726218" CREATED="1707116184919" MODIFIED="1707116258104"/>
 </node>
+<node TEXT="TopologyManager" ID="ID_1529059839" CREATED="1707116524108" MODIFIED="1707116543452">
+<node TEXT="CGのトポロジー形成を行う" ID="ID_265704638" CREATED="1707117106960" MODIFIED="1707117117959"/>
+</node>
+<node TEXT="Socketによる通信の仕組み" ID="ID_593040069" CREATED="1707116002953" MODIFIED="1707116014736"/>
 <node TEXT="分散ファイルシステムのトポロジー形成" ID="ID_1837705741" CREATED="1704631962837" MODIFIED="1704631974676"/>
-<node TEXT="Christieを用いている" ID="ID_703384422" CREATED="1704631982827" MODIFIED="1704631995001"/>
 </node>
 <node TEXT="実行したCodeGearを出力する仕組みが欲しい" POSITION="right" ID="ID_566018654" CREATED="1706690111878" MODIFIED="1706690124375">
 <node TEXT="毎回printfするの面倒" ID="ID_402999765" CREATED="1706690125223" MODIFIED="1706690134582"/>
@@ -850,7 +855,7 @@
 </node>
 </node>
 </node>
-<node TEXT="CopyRedBlackTreeの実装" FOLDED="true" POSITION="right" ID="ID_1875155929" CREATED="1706686273106" MODIFIED="1707024295815" HGAP_QUANTITY="-10.75 pt" VSHIFT_QUANTITY="267.74999 pt">
+<node TEXT="CopyRedBlackTreeの実装" FOLDED="true" POSITION="right" ID="ID_1875155929" CREATED="1706686273106" MODIFIED="1707115980863" HGAP_QUANTITY="29 pt" VSHIFT_QUANTITY="157.49999 pt">
 <node TEXT="説明" ID="ID_1618684595" CREATED="1706689938660" MODIFIED="1706689944053">
 <node TEXT="TreeのAPIのひとつとして実装" ID="ID_1013219955" CREATED="1706934961492" MODIFIED="1706934969874"/>
 <node TEXT="アルゴリズム" ID="ID_73867053" CREATED="1706934970286" MODIFIED="1706934976931"/>
@@ -949,11 +954,11 @@
 </node>
 <node TEXT="tree-&gt;rootを書き換えて,途中のノードからコピーできるみたいなの作りたい" ID="ID_1603927493" CREATED="1706692686178" MODIFIED="1706692704418"/>
 </node>
-<node TEXT="評価" POSITION="right" ID="ID_1699170037" CREATED="1706803749390" MODIFIED="1706803756057">
+<node TEXT="評価" FOLDED="true" POSITION="right" ID="ID_1699170037" CREATED="1706803749390" MODIFIED="1706803756057">
 <node TEXT="説明" ID="ID_1332913546" CREATED="1707024290462" MODIFIED="1707024304655">
 <node TEXT="テストコード" ID="ID_83989606" CREATED="1707024312272" MODIFIED="1707024315913">
 <node TEXT="いくつかの考えられる木の形はテストした" ID="ID_401372478" CREATED="1707024501611" MODIFIED="1707024539431">
-<node TEXT="15パターン" ID="ID_1060583266" CREATED="1707036504432" MODIFIED="1707036508605"/>
+<node TEXT="11パターン" ID="ID_1060583266" CREATED="1707036504432" MODIFIED="1707110133774"/>
 <node TEXT="動作した" ID="ID_854834536" CREATED="1707024607282" MODIFIED="1707024611419"/>
 <node TEXT="検証漏れは否めない" ID="ID_1172918896" CREATED="1707024655533" MODIFIED="1707024662259"/>
 <node TEXT="コピーを定理証明で検証する必要がありそう" ID="ID_518078514" CREATED="1707024673942" MODIFIED="1707024691543"/>