Yabu.log

ITなどの雑記

分散処理本第40回に参加

恒例のDistributed Computingこと分散処理本を読む会になります。

Distributed Computing: Principles, Algorithms, and Systems

Distributed Computing: Principles, Algorithms, and Systems

「10.9  Kshemkalyani–Singhal algorithm for the P-out-of-Q model」の続き(10.9.2 The algorithm)から、10章の最後までを読みきりました。

次回は「CHAPTER 11 Global predicate detection」からになります。*1

学んだこと

P-out-of-Qリソースモデルにおけるデッドロック検出アルゴリズム""Kshemkalyani–Singhal algorithm”について学びました。 こちらは個別の記事でブログを書きたいと思います。

分散処理本のKindle版に見つかった落丁について

「Algorithm 10.4 Deadlock detection algorithm」として挙げられている擬似コードの図が 「Algorithm 10.3 Kshemkalyani–Singhal algorithm for the P-out-of-Q model.」の図と全く同じものば謝って掲載されています。(しかも同じ擬似コードを2回連続で並べています)

f:id:yuyubu:20181108064616j:plain
同じ擬似コードを2連続で表示。しかも文章と意味があっていないので大混乱

f:id:yuyubu:20181108064650p:plain
10.4の画像の欄に表示されている意味不明な画像は10.3のものを謝って2回表示していたようだ

この落丁はKindle本だけであり、紙の本では10.4の擬似コードで適切なアルゴリズムが紹介されていました。

読み手の@okachimachiorz1さんと@Shin1Miyazawaさん以外の3人の参加者はKindleを参照していたので、 読み手の説明しているアルゴリズムと対応しているものが本中になく非常に混乱しました。

ちなみに表示すべき内容は以下の論文から引用されているアルゴリズムの図になります。

f:id:yuyubu:20181108065424p:plain
表示されるべきアルゴリズム

f:id:yuyubu:20181108065442p:plain
表示されるべきアルゴリズム続き

分散システムにおけるデッドロック対処の章を読み終えて

実際の分散システムではデッドロック検知や防止は難しので、タイムアウトでアボートさせる手法が一般的だそうです。 あえて本書に掲載されているような検知、防止を実装するようなシステムは アボートのコストが非常に高く、それを避けたいのでは? という議論になりました。

*1:キリがいいので参加しようと思っている人はチャンスですよ!!!