# HG changeset patch # User Nobuyasu Oshiro # Date 1390462550 -32400 # Node ID a4dfb70496ee155c4e0484ca2472cf2b77b95073 # Parent a7fbd5db80fb8cc9885342487fd19fda2d495874 Added figure diff -r a7fbd5db80fb -r a4dfb70496ee paper/chapter3.tex --- a/paper/chapter3.tex Thu Jan 23 15:33:54 2014 +0900 +++ b/paper/chapter3.tex Thu Jan 23 16:35:50 2014 +0900 @@ -78,7 +78,7 @@ 次に続く label="child1" は, node0 が node1 のデータに"child1"という文字列を使うことでアクセス できることを示す. -dot ファイルを読み込んだ Alice のトポロジーマネージャーに対して, サーバーノードは +dot ファイルを読み込んだ Alice のトポロジーマネージャーに対して, サーバノードは 誰に接続を行えばよいかを訪ねる. トポロジーマネージャーは訪ねてきたサーバノードに対してノード番号を割り振り, dot ファイル に記述している通りにサーバノード同士が接続を行うよう指示をだす. @@ -111,29 +111,52 @@ } \end{lstlisting} -そして, プログラムの起動時にトポロジーマネージャーが動いているサーバの - - -\begin{comment} -\subsection{トポロジー用 dot ファイル形成スクリプト} -Alice ではトポロジー形成用スクリプトが用意されている. -スクリプトを使用することで, ノードの数を指定するだけで dot ファイルの作成が行える. -また, ツリーに限らずリングやメッシュといったトポロジーの形成も行うことができる. -\end{comment} +そして, プログラムの起動時にはトポロジーマネージャーが動いているサーバのドメインとポート番号を +渡すことでトポロジーの形成が行われれプログラムの処理がはしる. +例えば, mass00.cs.ie.u-ryukyu.ac.jp というサーバ上でポート番号10000を指定してトポロジーマネージャーを +起動した場合は次のようになる(\ref{src:run_program}). +\begin{lstlisting}[frame=lrbt,label=src:run_program,caption=トポロジーマネージャーの利用,numbers=left] +% java Program -host mass00.cs.ie.u-ryukyu.ac.jp -port 10000 +\end{lstlisting} % MessagePackの説明もここに簡単に入れたほうがいいかも. \section{Aliceを用いての分散実装} -Alice によりトポロジーの形成を行うことができれば, 後はデータの送受信を行う部分の実装になる. +形成されたトポロジー上でのデータの送受信を行う部分について述べる. \section{ログのシリアライズ} +ここでログのシリアライズについて述べる. -ログのシリアライズについて述べる. シリアライズとは, データをネットワーク上に流しても良い形式に変換することである. \section{Jungleの永続性の実装} -\subsection{マージの実装} + + +\section{マージの実装} +Jungle への分散実装を行うことである問題が発生する. +それは更新されたデータ同士が衝突を起こした時の処理である. +Jungle はリクエストがきた場合, 現在もっているデータを返す. +しかしそのデータは最新のものであるかは保証されない. +よって, 別のサーバノードで動いている Jungle からの更新データと衝突する可能性がある. + +この問題に対して Jungle はアプリケーションレベルでのマージを実装して貰うことで解決をはかる. +今回 Jungle に分散を行うにあたり掲示板プログラムを実装した. +掲示板プログラムに実装を行ったマージの例について述べる. +Jungle を用いた掲示板プログラムのデータ保持方法を示したのが図\ref{fig:merge1}になる. +\begin{figure}[htpb] + \begin{center} + \includegraphics[scale=0.70]{figures/merge1.pdf} + \caption{Jungle による掲示板プログラムのデータ保持方法} + \label{fig:merge1} + \end{center} +\end{figure} + +掲示板プログラムでは各掲示板毎に1つの木構造が作成される. +また, この時作成された木構造データのルートノードを保持する木構造が別にある. + + + diff -r a7fbd5db80fb -r a4dfb70496ee paper/figures/merge1.pdf Binary file paper/figures/merge1.pdf has changed diff -r a7fbd5db80fb -r a4dfb70496ee paper/figures/merge1.xbb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/figures/merge1.xbb Thu Jan 23 16:35:50 2014 +0900 @@ -0,0 +1,8 @@ +%%Title: ./merge1.pdf +%%Creator: extractbb 20130405 +%%BoundingBox: 0 0 427 430 +%%HiResBoundingBox: 0.000000 0.000000 427.000000 430.000000 +%%PDFVersion: 1.4 +%%Pages: 1 +%%CreationDate: Thu Jan 23 16:30:26 2014 + diff -r a7fbd5db80fb -r a4dfb70496ee paper/graffle/merge1.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/graffle/merge1.graffle Thu Jan 23 16:35:50 2014 +0900 @@ -0,0 +1,887 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.18.0.187838 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2014-01-23 07:11:45 +0000 + Creator + Oshiro Nobuyasu + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{337.97015380859375, 353.87710571289062}, {114.27693176269531, 39.159248352050781}} + Class + ShapedGraphic + ID + 51 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 \'8f\'91\'82\'ab\'8d\'9e\'82\'dd\'82\'f0\'8e\'71\'83\'6d\'81\'5b\'83\'68\'82\'c6\'82\'b5\'82\'c4\'95\'db\'8e\'9d} + + + + Bounds + {{330.72305297851562, 175}, {114.27693176269531, 39.159248352050781}} + Class + ShapedGraphic + ID + 50 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 \'8a\'65\'8c\'66\'8e\'a6\'94\'c2\'82\'cc\'83\'8b\'81\'5b\'83\'67\'83\'6d\'81\'5b\'83\'68\'82\'f0\'95\'db\'8e\'9d} + + + + Bounds + {{377.36224365234375, 506}, {98.914688110351562, 44.159250185682239}} + Class + ShapedGraphic + ID + 48 + Shape + Cloud + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 message\ +timestamp} + VerticalPad + 0 + + + + Bounds + {{280.00002479553223, 506}, {98.914688110351562, 44.159250185682239}} + Class + ShapedGraphic + ID + 47 + Shape + Cloud + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 message\ +timestamp} + VerticalPad + 0 + + + + Bounds + {{187.63777160644531, 506}, {98.914688110351562, 44.159250185682239}} + Class + ShapedGraphic + ID + 46 + Shape + Cloud + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 message\ +timestamp} + VerticalPad + 0 + + + + Bounds + {{90, 506}, {98.914688110351562, 44.159250185682239}} + Class + ShapedGraphic + ID + 9 + Shape + Cloud + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 message\ +timestamp} + VerticalPad + 0 + + + + Class + LineGraphic + Head + + ID + 32 + + ID + 44 + Points + + {203.85135103353471, 327.2155784887442} + {213.91467614584784, 361.73182971309126} + {254.86661947125981, 366.7903840965655} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + Pattern + 1 + TailArrow + 0 + + + Tail + + ID + 29 + + + + Class + LineGraphic + Head + + ID + 36 + + ID + 43 + Points + + {307.50770440035421, 389.77301601732296} + {392.26885345020617, 474.10406708691306} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 32 + + + + Class + LineGraphic + Head + + ID + 35 + + ID + 42 + Points + + {295.98171143192565, 393.0031060592168} + {322.07105886247803, 470.87397780752366} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 32 + + + + Class + LineGraphic + Head + + ID + 34 + + ID + 41 + Points + + {279.55426227416092, 392.73266847296264} + {246.9826516604941, 471.18250421585265} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 32 + + + + Class + LineGraphic + Head + + ID + 33 + + ID + 40 + Points + + {267.69700287595401, 388.83644699112654} + {166.92734967418249, 475.05035990403229} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 32 + + + + Class + LineGraphic + Head + + ID + 31 + + ID + 39 + Points + + {303.73669598076424, 203.32647904296755} + {364.6625719551227, 284.79645587343776} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 28 + + + + Class + LineGraphic + Head + + ID + 30 + + ID + 38 + Points + + {288.59538901202615, 205.65926120239456} + {288.59519631705467, 282.46363235373036} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 28 + + + + Class + LineGraphic + Head + + ID + 29 + + ID + 37 + Points + + {273.45415443343217, 203.32646386311794} + {212.52810712343305, 284.79638859784916} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 28 + + + + Bounds + {{377.36224684124102, 470.84074981431792}, {67.637766719139165, 44.159250185682239}} + Class + ShapedGraphic + ID + 36 + Shape + Circle + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 n} + VerticalPad + 0 + + + + Bounds + {{295.63846959977684, 470.84074981431792}, {67.637766719139165, 44.159250185682239}} + Class + ShapedGraphic + ID + 35 + Shape + Circle + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ...} + VerticalPad + 0 + + + + Bounds + {{203.91468949728824, 470.84074981431803}, {67.637766719139165, 44.159250185682239}} + Class + ShapedGraphic + ID + 34 + Shape + Circle + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 1} + VerticalPad + 0 + + + + Bounds + {{112.19091054829468, 470.84075588503231}, {67.637766719139165, 44.159250185682239}} + Class + ShapedGraphic + ID + 33 + Shape + Circle + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 0} + VerticalPad + 0 + + + + Bounds + {{254.77654679183698, 348.87708199747487}, {67.637766719139165, 44.159250185682239}} + Class + ShapedGraphic + ID + 32 + Shape + Circle + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;\f1\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 board +\f1 1} + VerticalPad + 0 + + + + Bounds + {{345.98506590876025, 282.96364336997954}, {67.637766719139165, 44.159250185682239}} + Class + ShapedGraphic + ID + 31 + Shape + Circle + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 board3} + VerticalPad + 0 + + + + Bounds + {{254.77656230264805, 282.96364336997954}, {67.637766719139165, 44.159250185682239}} + Class + ShapedGraphic + ID + 30 + Shape + Circle + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 board2} + VerticalPad + 0 + + + + Bounds + {{163.56805869653599, 282.96364336997954}, {67.637766719139165, 44.159250185682239}} + Class + ShapedGraphic + ID + 29 + Shape + Circle + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;\f1\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 board +\f1 1} + VerticalPad + 0 + + + + Bounds + {{254.77656230264805, 161.00000000000014}, {67.637766719139165, 44.159250185682239}} + Class + ShapedGraphic + ID + 28 + Shape + Circle + Style + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 boards} + VerticalPad + 0 + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2014-01-23 07:30:11 +0000 + Modifier + Oshiro Nobuyasu + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{306, 124}, {693, 922}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + +