comparison final_main/chapter3/chapter3.tex @ 12:2e843f65ac5f

update
author akahori
date Tue, 19 Feb 2019 15:28:07 +0900
parents 0ad9752c0c85
children
comparison
equal deleted inserted replaced
11:534d552b4273 12:2e843f65ac5f
113 \item もし, 値がすでにacceptされていれば, accpetされた提案を返す. 113 \item もし, 値がすでにacceptされていれば, accpetされた提案を返す.
114 \end{enumerate} 114 \end{enumerate}
115 115
116 \end{enumerate} 116 \end{enumerate}
117 117
118 1フェーズ目を図にしたものを図\ref{fig:prepare-promise}に示す.
119
120 \begin{figure}[H]
121 \centering
122 \fbox{
123 \includegraphics[scale=0.5]{./images/prepare-promise.pdf}
124 }
125 \caption{prepare-promise}
126 \label{fig:prepare-promise}
127 \end{figure}
128
129
118 2つ目のフェーズ, accept-acceptedは次のような手順で動作する. 130 2つ目のフェーズ, accept-acceptedは次のような手順で動作する.
119 \begin{enumerate} 131 \begin{enumerate}
120 \item proposerは過半数のacceptorから返信が来たならば, 次の提案をacceptorに送る. これをacceptリクエストという. 132 \item proposerは過半数のacceptorから返信が来たならば, 次の提案をacceptorに送る. これをacceptリクエストという.
121 \begin{enumerate} 133 \begin{enumerate}
122 \item もし, 約束のみが返ってきているならば, 任意の値vをprepareリクエストで送った提案に設定する. 134 \item もし, 約束のみが返ってきているならば, 任意の値vをprepareリクエストで送った提案に設定する.
124 \end{enumerate} 136 \end{enumerate}
125 137
126 \item acceptorはacceptリクエストが来た場合, Promiseした提案よりもacceptリクエストで提案された提案番号が低ければ, その提案を拒否する. それ以外の場合はacceptする. 138 \item acceptorはacceptリクエストが来た場合, Promiseした提案よりもacceptリクエストで提案された提案番号が低ければ, その提案を拒否する. それ以外の場合はacceptする.
127 \end{enumerate} 139 \end{enumerate}
128 140
141 2フェーズ目を図にしたものを図\ref{fig:accept-accepted}に示す.
142
143 \begin{figure}[H]
144 \centering
145 \fbox{
146 \includegraphics[scale=0.5]{./images/accept-accepted.pdf}
147 }
148 \caption{accept-accepted}
149 \label{fig:accept-accepted}
150 \end{figure}
151
152
129 このアルゴリズムによって, 各accptorごとに値が一意に決まる. 値を集計, 選択するのはLearnerの役割である. Learnerが値を集計する方法には2つの方法がある. 153 このアルゴリズムによって, 各accptorごとに値が一意に決まる. 値を集計, 選択するのはLearnerの役割である. Learnerが値を集計する方法には2つの方法がある.
130 154
131 \begin{enumerate} 155 \begin{enumerate}
132 \item Acceptorによって値がacceptされた時に, 各Learnerに送信される. ただし, Message通信量が, $Acceptorの数 \times Learnerの数$になる. 156 \item Acceptorによって値がacceptされた時に, 各Learnerに送信される. ただし, Message通信量が, $Acceptorの数 \times Learnerの数$になる.
133 \item 1つのLearnerが各Learnerに選択された値を送信する. 1の方法に比べてMessage通信量が少なくなる(Acceptorの数の通信量になる)代わりに, そのLearnerが故障した場合は各LearnerがMessageを受け取れない. 157 \item 1つのLearnerが各Learnerに選択された値を送信する. 1の方法に比べてMessage通信量が少なくなる($Acceptorの数 + Learnerの数$になる)代わりに, そのLearnerが故障した場合は各LearnerがMessageを受け取れない.
134 \end{enumerate} 158 \end{enumerate}
135 159
136 2つの方法はメッセージ通信量と耐障害性のトレードオフになっていることがわかる. 160 2つの方法はメッセージ通信量と耐障害性のトレードオフになっていることがわかる.
137 161
138 Paxosでコンセンサスを取ることは, Proof of Workと比較して次のようなメリットがある. 162 Paxosでコンセンサスを取ることは, Proof of Workと比較して次のようなメリットがある.