今年聴いてよかったPaxosの話と聴いてみたかったビッグデータを用いた話

聴いてよかったPaxosの話

http://www.insight-tec.com/dbts-tokyo-2013.html での梅田太一氏のお話です。
実装者の視点からPaxosの話をしてくださる、しかも「5分で説明します」と言いきって。
他のご説明も私好みで憧れる感じでしたが、ここがとにかく かっこよかったのです。


萩原 正義氏曰く

“考えをおさえていないと今後のデータベースや分散システムの基本的な理解が出来ない”

クラウド ネーティブなデータ アーキテクチャーの選択のポイント | 2013 Fall | Channel 9 via マイクロソフト アーキテクト フォーラム 2013 Fall | MSDN

*1
というPaxosアルゴリズム。Paxos consensusとも呼ばれます。 *2 *3
躊躇なく説明されている姿を観て、見習わねばと思うと共に、難しいことを説明することへの勇気がわいてくるような気がして、感動しました。*4


聴いてみたかったビッグデータを用いた話

General Electric Healthcare の Global Innovation Competitionでaward受賞した、20代の日本人2人による医療機器プロジェクト

第31回 データマイニング+WEB@東京( #TokyoWebmining 31st ) −大規模データ 活用・基盤・育成 祭り−を開催しました - hamadakoichi blog

このIndustrial Internetの実現を実際に行われた方々による お話(?)に とても興味があります。スライドもシンプルで美しいと思いました。
また 第31回 データマイニング+WEB@東京( #TokyoWebmining 31st) -大規模データ 活用・基盤・育成 祭り- - Togetter でツイートされている様子からの想像でしかないですが、このスライドが とてもシンプルで美しいことは、このお話そのものを表しているようで、なおのこと興味が沸きました。
うまくいえないのですが、同じような話をされる機会があるのなら、ぜひとも聴いてみたいです。


なぜこのようなことを書いているのか

この一年、様々な場所で、いろいろな話をお聴きしました。
幾度となく素晴らしい お話を お聴きし、感銘を受けたことなど書ききれないほど あります。
多分、今まで生きてきた人生の中で、この一年が一番多くの方のお話を聴いたと思います。それだけ色々な場所へ足を運びましたし、数多くの良い体験をしました。


一方で、この一年は、私自身が多くの方へお話をした年でもありましたが、お話を聴いてくださった方に申し訳なく思うことも多かったです。反省するべき点が多々あると自覚し、具体的に変えています。徐々に変えていくことが出来ています。*5
それは、何を目標にして変えていっているのか、何をお手本にして変えていっているのか、その中で大きいのが この二つのお話です。


こんなことを どこでもいつでも見れるようにしておこうと思い、書きました。

*1:クラウド ネーティブなデータ アーキテクチャーの選択のポイント | 2013 Fall | Channel 9 via マイクロソフト アーキテクト フォーラム 2013 Fall | MSDNの15分あたりからのお話。
私は ほぼ同じ内容をJJUG CCC 2013 Fall R1-4 分散データ技術の再考 などで聴講しました。

*2:May 1998に書かれた論文がThe Part-Time Parliament - The Writings of Leslie Lamport にあります。

*3:ちなみにこの Paxosアルゴリズムを提案されたのは、Oracle8i Database Release 8.1.5 Oracle Parallel Server(OPS)の Integrated Distributed Lock Managerから導入され Oracle Database 10g Release 1 (10.1) の Real Application Clusters(RAC)まで System Change Number(SCN)の伝播スキームとしてお馴染みだった Lamport SCN schemeの Leslie Lamport氏です。
Lamport SCN schemeは、一般的には Lamport Timestampsや Lamport's logical clock や Lamport's algorithmと呼ばれているアルゴリズムの実装です。July 1978に書かれた 論文が Time, Clocks and the Ordering of Events in a Distributed System - The Writings of Leslie Lamport にあります。
もっとも Oracle Database 10g Release 2 (10.2)からは Broadcast on Commitがデフォルトになっていることになっているので、もうお馴染みな人なんていないかもしれないけど、この頃はポーティング対象によってSCNの伝播スキームは何がデフォルトか どうかや使えるかどうかは異なっていました。max_commit_propagation_delayのデフォルト値が違うとかいう単純な話だけじゃなく。リリース8.1.5からリリース10.2までの複数プラットフォームでの実装をきちんと説明するのは…。・゜゜・(>_<;)・゜゜・。
(略)
Lamport Timestampsの理解が あの頃のSCNの伝播をきちんと説明するために必須だったように、つまり紛れもなく分散システムとして とても有名な実装を語るためには避けては通れなかったように、データベースや分散システムを説明するためには Paxosアルゴリズムの理解は ある程度必要だと私も思います。
既に様々な実装がなされていて、例えば Oracle Berkeley DBおよび Oracle NoSQL Databaseもレプリケーションにおいて語る上では知らないでは済まされない状態ではないかと推察します。
しかし難しいです。
Paxos by Preferred Infrastructure Inc, on Jul 12, 2012では久保田展行氏による“10回くらい読み直したら理解できた”と言う文字と“一人で読んでると心が折れそうなので”という文が見えますよねぇ…ここまでスライドのみで素晴らしい説明をされている方にして このような難しさです。
なお「他人を見習ってる場合じゃないでしょ」とかいう下名へのマサカリあるいはマッチョなツッコミは、コッソリとお願いします。(^^;

*4:このようなことを ご本人にも聴講後にお伝えしました。

*5:変える機会が与えられていることが幸いです。