投稿

1月, 2022の投稿を表示しています

マルレク「分散合意アルゴリズム -- Paxos」講演資料公開しました

 【 マルレク「分散合意アルゴリズム -- Paxos」講演資料公開しました 】 1/29 マルレク「分散合意アルゴリズム -- Paxos」講演資料公開しました。 https://www.marulabo.net/docs/paxos/ から、ご利用ください。 セミナーに向けたショートムービーは、次からアクセスできます。https://youtu.be/24Reuk66l04?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 1/29 マルレクへのお申し込みは、つぎのページからお願いします。 https://paxos.peatix.com/  1/29の夕方  6時くらいまで申し込み受け付けています。 多くの方のお申し込み、おまちしています。

Paxos アルゴリズム (2)

 【「Paxos アルゴリズム (2)」を公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「Paxos アルゴリズム (2)」を公開しました。ご利用ください。 https://youtu.be/d0ZHdFym79c?list=PLQIrJ0f9gMOTqmza5742zyEYjkApl_fF Paxosアルゴリズムの基本論文は二つあります。 一つは、先の「たとえ話で理解するPaxos」で紹介した、Lamportの "Part-Time Parliament" の論文です。もう一つは、Jim GreyとLamportの”Consensus on Transaction Commit” という論文です。   https://arxiv.org/pdf/cs/0408036.pdf 今回は、こちらの論文に依拠して、Paxosのアルゴリズムの説明をしたいと思います。 と思ったのですが、この論文の逐条の解釈をやり始めてみると、これがなかなか難しいのです。そこで、今回は、この論文のポイントを説明するというスタイルに、途中で方針を変えました。 スライドでブルーの見出のページが現論文の翻訳で、見出しがグリーンの部分が対応する丸山の解説です。 といっても、原論文を読む必要がなくなる訳ではありません。特に、今回は、ほとんどふれることもできませんでしたが、この論文のAppendixにある TLA+を用いたPaxosアルゴリズムの「形式的記述」は、この論文の真骨頂です。時間があったら、現論文に、ぜひチャレンジください。 (今度のセミナー参加者には、この論文の丸山による翻訳をプレゼントしたいと思います) スライドの pdf はこちらです。 https://drive.google.com/file/d/1MYQ3t9wB61vfk4_kR1FEcNbmB4o3SnoL/view?usp=sharing このPaxosシリーズのショートムービー・参考資料はこちらからアクセスできます。https://www.marulabo.net/docs/paxos/

Paxos アルゴリズム (1)

 【「Paxos アルゴリズム (1)」を公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「Paxos アルゴリズム (1)」を公開しました。ご利用ください。 https://youtu.be/83RRijzzesI?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 今回からは、古代Paxosのたとえ話ではなく、現代の分散ネットワークのもとでのPaxosアルゴリズムの紹介です。 Paxosでは、登場人物は、異なる三つの役割をもちます。  ・Proposers(提案者)-- 合意すべき値の提案者  ・Acceptors(受容者)-- 合意の形成に関わる人たち  ・Learners  (学習者)--  形成された合意を学ぶ人たち 物理ノードは、一つ以上の役割を持つことができます。 実際、実装的には、一つの物理ノードが、上記3つの論理的役割を同時に果たすのは、よくみられることです。 Paxosのアルゴリズムは、つぎの三つの phaseを持ちます。  ・phase 1 (prepare) :  提案者による提案に対する投票の準備。  ・phase 2 (accept)   : accepter による投票と合意の受容。  ・phase 3 (commit)  : acceptorが受け入れた合意の学習。 phase 1とphase 2 では、一つの提案とその提案の一つの投票に紐づけられた「投票番号」が、大きな役割を果たします。 スライドの pdf はこちらです。 https://drive.google.com/file/d/1LuQzbq3a7B0jM5-12pXdbgXQjs_JuCQQ/view?usp=sharing このPaxosシリーズのショートムービー・参考資料はこちらからアクセスできます。https://www.marulabo.net/docs/paxos/

たとえ話で理解するPaxos (2)

 【「たとえ話で理解するPaxos (2)」を公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「たとえ話で理解するPaxos (2)」を公開しました。ご利用ください。 https://youtu.be/8NEJRUJKVaA?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF たとえ話で理解するPaxosの二回目です。引き続き、Lamportの例え話を追いかけます。 「Paxosの数学者は、投票の集合Bに3つの条件を定義して、行われた投票の集合がこれらの条件を満たしていれば、投票の一貫性が保証され、議事の進行が可能であることを示した。」 彼は、Paxosの数学者は、データの整合性を保証する条件を見つけていたといいます。それが、つぎの条件です。  B1:  Bの中の投票は、全てユニークな投票番号を持つ。  B2:  Bの中の任意の二つの投票のquorumには、少なくとも一人が、共通に含まれる。  B3:  Bの中の投票Bは、Bの以前の投票で、quorum内のだれかが賛成票を投じていれば、Bの投票の対象である法令は以前の投票の中で最新の法令に等しい。 B1, B2の条件は、比較的わかりやすいのですが、B3の条件は、わかりにくいものです。ただし、B3の条件は、Paxosの振る舞いを理解する上で重要な意味を持っています。 今回は、特に、条件B3にフォーカスして、それがどのような働きをしているのかを、具体的な例で紹介しようと思います。 スライドのpdfは、次からアクセスできます。https://drive.google.com/file/d/1LjoSWzXtnK2FmXpPh8vNWXgsYp1Sql7D/view?usp=sharing このシリーズののショートムービー・pdf資料は、次からアクセスください。https://www.marulabo.net/docs/paxos/

たとえ話で理解するPaxos (1)

 【「たとえ話で理解するPaxos (1)」を公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「たとえ話で理解するPaxos (1)」を公開しました。ご利用ください。 https://youtu.be/DRd1lVhtemo?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 今回から、Paxosアルゴリズムの説明に入ります。ただし、まわりみちは続きます。 今回は、Paxosアルゴリズムの「たとえ話」での説明の第一回です。 Paxosという名前の由来から始めましょう。 Paxosは、エーゲ海のギリシャの島の名前です。 ある考古学者が古代ギリシャのPaxos島で奇妙な議会制度が発達していたことを発見し、その意思決定のスタイルが現代の分散システムの設計にも役に立つのではという論文を発表します。それが、 “The Part-Time Parliament”という論文です。 この論文が、世に出るには、少し曲折がありました。論文を原著者に代わって投稿した編集者は、こう言っています。 「この投稿は、最近になって、編集部のキャビネットの中から発見されたものだ。古いものだが、編集長は掲載する価値があると考えた。著者は現在、ギリシャの島々でフィールドワークをしていて連絡が取れないため、私が掲載の準備の依頼を受けた。 著者は考古学者で、コンピュータサイエンスにはほとんど興味がないようだ。また、残念なことに、彼が紹介した謎に包まれた古代Paxos文明は、ほとんどのコンピュータ科学者にとって興味のないものだろう。 にもかかわらず、その立法システムは、非同期環境での分散型コンピュータシステムの実装方法の優れたモデルとなっている。実際、Paxos人がプロトコルに加えた改良点のいくつかは、コンピュータ・システムの文献では知られていない。」 ところが、これは、この論文の本当の著者である Lamportの冗談なんです。 ここでは、この架空の物語を書いたLamportが、Paxos島の議会制度に想定したものをまずみておこうと思います。 それは、アルゴリズムとしてのPaxosの、とてもすぐれた「たとえ話」による解説になっています。 スライドのpdfは、次からアクセスできます。https://drive.google

LeaseとPaxos

【「LeaseとPaxos」を公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「LeaseとPaxos」を公開しました。ご利用ください。 https://youtu.be/hzVT0fRx22k?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 前回、前々回とPaxosアルゴリズムは、Azureのようなクラウド技術でも、Borgのようなコンテナー技術でも、大事な役割を果たしているという話をしてきました。 今回は、少し違った角度からPaxos を見てみようと思います。 それは、このシリーズの前半に紹介した Jim Waldoたちの分散システムの特徴の分析と、Paxosとの接点についてです。具体的には、Waldoたちが技術的に定着させた「リース」の概念とPaxosの関係について述べたいと思います。 分散システムでは、システム全体の統合・調整を担う、マスター・ノードと呼ばれるノードが特別な役割を果たします。 どの時点でも、システムの中心となるマスター・ノードは、必ず存在しなければなりません。しかも、マスターは、一つだけです。障害を引き金としたノードの再構成が行われたとしても、二つのノードが、同時にマスターになってはいけません。 その点では、マスター・ノードの復旧は、単なるレプリカ・ノードの復旧とは異なる問題があります。こうした問題を解決するには、マスターがリース期間を持つという考えが役に立ちます。同時に、そのことで、リースという考えとPaxosの考え方の類似を見ることができます。 今回は、実は、Paxosアルゴリズムの最小実装と言っていい googleのChubbyのアルゴリズムの紹介です。 スライドは、次のURLからアクセスできます。 https://drive.google.com/file/d/1J9PRLW4mKDWDMNJW5V6iCYGHQgegP-hF/view?usp=sharing 以前の講演ビデオ・講演資料は、次からアクセスください。 https://www.marulabo.net/docs/paxos/

Paxosとコンテナー技術

【「Paxosとコンテナー技術」を公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「Paxosとコンテナー技術」を公開しました。ご利用ください。 https://youtu.be/_tRSLUmnETY?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 前回は、MSのクラウドAzureのデータ・ノードの多重化と、障害が起きた際のノードの再構成の振る舞いを紹介して、Paxosの働きをイメージとしてつかんでもらおうとしました。 クラウドの高い耐障害性、高い可用性は、こうしたメカニズムで支えられています。そうしたメカニズムは、クラウド以前には存在しなかったものです。 前回のコンテンツは、その意味では、クラウド以前の技術者に留意して学んでほしいことだったのですが、今回のコンテンツは、クラウド以降の技術者が学んでほしいことを意識しています。 今回のシリーズで強調してきたように、ネットワーク・プログラミングには独特の難しさがあります。ネットワークの世界には、さまざまな落とし穴があります。 大規模な分散システムを開発するには -- 現在の大規模システムは、開発者がそれを意識するか否かにかかわらず、大規模分散システムの形をとります --  注意しなければいけないことがあるのです。 2015年、Googleは、彼らの大規模分散システムを支えてきたBorgの技術を公開します。これは、大規模分散システムの開発技術にとって、画期的な出来事だったと思います。Borgのオープンソース版のKubernetesの受容を中心に、大規模分散システムの開発スタイルは大きく変わりました。 スライドは、次のURLからアクセスできます。 https://drive.google.com/file/d/1J9PRLW4mKDWDMNJW5V6iCYGHQgegP-hF/view?usp=sharing 以前の講演ビデオ・講演資料は、次からアクセスください。 https://www.marulabo.net/docs/paxos/

美しいこと

イメージ
こんな文章に出会って、ハッとする。  「花たちを見て、美しいと感じるのが誰にもやさしいことなのは、驚くべきことではありません。というのも、花たちは、まさに魅力的であるように進化してきたからです。」 「最初は、人間にとってではありませんでした。花粉を運んでくれる鳥や蜂にとって、魅力的であるように進化したのです。」 「これらの生き物を惹きつけるものが、我々人間には魅力的でないことを想像することは可能です。ただ、実際には、私たちが花を愛でることと、生き物が花に惹かれることには、十分な共通性があります。」 その「共通性」は、花の「美しさ」と言うことだろう。 ということは、鳥や虫たちも、花の「美しさ」を感じていると考えることができるということだ。僕がハッとしたのは、「美」というのは、人間だけのものだと思っていたからだ。 「私は、すべての美しさの形は、密接に結びついていると考えています。」 「私は、なぜこの世界が救うに値するかという理由として、おもに美しさについて --そのすべての形で-- 考えています。」 「しかし、美の経済学ということになると、我々はとても原始的な状態にあります。絵は、数億円で売られることができますし、そのための市場も存在します。ただ、誰もこの絶滅危惧種のカエル Atelopus varius には、どんな値段もつけません。」 「私にとっては、これは、どんな絵よりも、美しく貴重なものです。もちろん、この個体ではなく、数百万年かけて進化してきたこの種がです。我々は、こうした種を、まるで価値のないゴミのよう破壊することに忙しくしています。」 「我々の子孫は、もしも存在するなら、我々を、きっと野蛮な馬鹿者と考えるでしょう。」 ---------------- エミー・ネーター100周年の国際会議に出席した、ジョン・バエズのインタビュー "A quest for beauty and clear thinking. Interviewing John Baez" から。 https://goo.gl/ndMe6a ---------------------------------------- 3年前のFacebookへの投稿から https://www.facebook.com/fujio.maruyama/posts/102174192116

研究と教育

(2年前のFacebookへの投稿から) https://www.facebook.com/fujio.maruyama/posts/10220302438088591 一月のセミナー「論理学入門」では、10代 - 20代の若い世代に、参加費の割引をした。それは、もちろん、彼らが 20代 - 30代になる10年後には、今回学んだことがきっと役に立つと考えているからだ。 ただ、そういうことを意識すると、いろいろ微妙な問題があることに気づく。 「いつか役立つ」ということは「いまは役立たない」ということなのか? 「役に立つ」ということなら、新しい課題に取り組むには、古い課題の知識は「役に立つ」。 僕の経験でも、量子コンピュータを教えるつもりでも、気がつくと、一生懸命、行列の掛け算を教えていた。遠回りだが、それなしでは量子論は理解できないからだ。 今回のセミナーもおんなじだ。Coqや形式手法の話をしようと思っていたのだが、なかなかうまく伝わらない。その原因の一つは、論理学の初等的な知識がないことにあると思っている。ないものは埋めないと次に進めない。 多分、「教育」というのはそうしたものなのだろう。(僕のやり方では、スケールしそうもないのだが) 誤解を恐れず一般化すると、未来を切り開く「研究」と過去の達成を学ぶ「教育」は、結びついている。現在の「研究と教育」の双方が「忙しすぎて」そうしたことを考える余裕を失っているのなら、いいことはない。 今回のセミナーでは、「証明」の話をするのだが、ギリシャのユークリッドらの数学は、西欧世界では、若い世代に継承されず、数百年もの間忘れ去られていた(それを伝え続けたのはイスラム世界だった)。中世ヨーロッパでは、大人・老人同様、若者も暗愚だった。 もっとも、「教育」を客観的な対象として語るのはあまりいいこととは思えない。教育の主体は「教育者」でも「制度」でもない。個人がいかに学ぶかが重要なはずだ。 若い世代が、「いつか役立つ」ことを学ぶことは、もちろんいいことだ。ただ、「いつか役立つ」が学ぶことの目的なら、若くない世代が学ぶことは、意味がないことにならないか? あるいは、我々は、何歳になったら学ぶ意味を失うのだろうか?  子曰、朝聞道、夕死可矣。  〔子曰く、朝に道を聞かば夕べに死すとも可なり、と。〕 こうした議論をアナクロと感じる人も多いだろ

エミー・ネーター

イメージ
(3年前の今日のFacebookへの投稿から) https://www.facebook.com/fujio.maruyama/posts/10217397751193234 DisCoCatでの女性の活躍については、ここでも紹介した。女性科学者と言うことでは、是非とも紹介したい女性がいる。数学者のエミー・ネーターだ。 数学者なら誰でも知っている名前だが、一般には、ほとんど知られていないと思う。そう言う僕も、恥ずかしながら、高校時代にネーターが女性であることを知り、びっくりしたことを覚えている。てっきり男性だと思っていたのだ。 女性科学者というと、キューリー夫人が有名だが(だったが)、今の子供達は「偉人伝」なんか読まないだろう。おそらく、キューリー夫人も知らないかも。GAFAの創始者が新しい「偉人」になるのかも。 エミー・ネーター(1882 – 1935)は、ドイツ生まれの数学者。20世紀の抽象代数学の成立に大きな貢献をした。また、対称性と保存量の関係を示した1918年の「ネーターの定理」は、量子力学にも大きな影響を与えた。 ヒルベルトもアインシュタインもワイルもウィーナーも、彼女の傑出した才能を認めている。彼女の時代、彼女は最も重要な数学者だった。 ただ、「女性」というだけで、彼女のアカデミーでの活動は、大きな制約を受けた。 彼女を、ゲッティンゲン大学に招こうとしたヒルベルトは、教授会の強烈な反対にあった。その中心は、哲学の教授たちだったらしい。 その一人は、こう言ったという。 「我々の兵士たちが、戦場から大学に戻ってきた時、女のもとで学ぶことを要求されたら、なんと思うと思うんだ。」 ヒルベルトは激怒して、「性別なんてどうでもいいじゃないか。ここは大学だ。お風呂じゃないんだ。」と言ったという。 https://goo.gl/jDzULN 結局、彼女は、正規の教員としては受け入れてもらえず、ヒルベルトの名前を借りる形で、その代理として講義をしたらしい。 先に挙げた画期的な「ネーターの定理」も、ゲッティンゲン王立科学協会で発表されたのだが、彼女は会員でないという理由で出席を許されず、発表は同僚のクラインが行なった。 大学では、正規の教授に昇進することはなかったのだが、彼女は、自宅でも喫茶店でも、熱心に教育を行い、「ネーター軍団」といっていい、優秀な数学者をたくさん育て

Paxosの働きをイメージする

 【「Paxosの働きをイメージする」を公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「Paxosの働きをイメージする」を公開しました。ご利用ください。 https://youtu.be/HsmuIRZq8ps?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 今回から、Paxos のアルゴリズムの紹介を始めようと思います。 ただ、Paxosのアルゴリズムは複雑なので、それがどういう状況でどのような働きをしているのかのイメージを持ってもらうことから始めようと思います。 今回は、MSのクラウドAzureのデータ・ノードの多重化と、障害が起きた際のノードの再構成の振る舞いを紹介して、こうしたメカニズムが、基本的には Paxos の働きで支えられているという話をします。 この例では、次のような障害とそれからの回復操作を想定しています。  ・ Primary の故障  ・故障したSecondaryを除く  ・修復したreplicaの追加  ・新しいSecondaryの準備 重要なことは、こうした障害に際してのシステムの再構成が、自動的に行われるということです。クラウドの高い耐障害性、高い可用性は、こうしたメカニズムで支えられています。そうしたメカニズムは、クラウド以前には存在しなかったものです。 「分散合意」というのは、複数のノードからなる分散システムが、その内部で部分的な傷害が起きたとしても、外から見ると、共通の一つの意志を持つように振る舞うということです。 Paxosでは、その意思決定に「多数決」を用いることがあります。 今回の例では、4つのセカンダリーのうち、多数の3つのセカンダリーへの書き込みに成功した時点で(1つのノードへの書き込みができていなくとも)、このシステムへの書き込みは成功したものと反応します。 今回は、具体的なPaxosのアルゴリズムには踏み込みませんが、分散システムの中で、Paxosが、どのような働きをしているかの、イメージをもって貰えばいいと思います。 スライドのpdfは、次のURLからアクセスできます。 https://drive.google.com/file/d/1Hd84oUOhU_QOfpdu3Fylld65UrfGFO1t/view?usp=s

システムの進化とその複雑さについて

【「システムの進化とその複雑さについて」を公開しました 】 https://youtu.be/_d8ncnrO5WA?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 分散システムの成立を、システムがその複雑さを増す進化として捉える見方を紹介します。再び、Jim Waldoの 2006年の議論です。 Jim Waldo "Complexity Quanta and Platform Definition" https://docs.huihoo.com/jini/10th/Complexity-Quanta-and-Platform-Definition.pdf ただ、このスライドは、タイトルだけなので、Warren Strangeによる次の要約がわかりやすいと思います。 https://wstrange.wordpress.com/2006/10/05/summary-jim-waldos-keynote-at-the-10th-jini-community-meeting/ Jim Waldo は、システムの進化を、まず、プログラミングのスタイルの質的飛躍として捉えます。 出発点は、一つのマシン上でのプログラミングです。それは、基本的には、「シーケンシャル」にプログラムが走る世界です。この時代、「人生は善良でシンプルであった 」と彼は言います。 つぎの飛躍は、「マルチ・スレッド」のプログラミングです。ただ、OSの開発に携わるような一部の人たちしか、このスキルを使いこなせませんでした。 多くの人が利用できたのは、UNIXのfork-execのような「マルチ・プロセス」のプログラミングスタイルです。 やがて、「マルチ・マシン」の時代が始まります。これまで見てきたように、「マルチ・マシン」のプログラミングは、単一のマシンでのプログラミングとは、異なるものです。 システムの進化はさらに進みます。気がつけば、我々は、「信頼できないマルチ・マシン」のただなかに立っています。 彼は言います。「それぞれの段階を通り抜ける際、 我々は、何かを失ってきた」と。にもかかわらず、「我々は、何かを得てきた」 詳しくは、ビデオをご覧ください。 スライドのpdfは、次のURLからアクセスできます。 https://drive.google.c

ネットワークの遅延について

【「ネットワークの遅延について」公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「ネットワークの遅延について」を公開しました。ご利用ください。 https://youtu.be/gR72GcwI_Fw?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 前回は、Jim Waldo の論文を紹介して、PCでPCの上で動くプログラムをプログラミングするのと、多数のコンピュータがネットワークで結ばれた分散システムをプログラミングするのとは、質的に大きな違いがあるという話をしました。 今回は、Erik Meijer の、ネットワークをまたいでデータを処理するのに要する時間は、コンピュータ内部の処理に要する時間と比べると、「桁違い」に大きいという指摘を紹介します。 人間には、コンピュータとネットワークのスピードの「桁の違い」を、感覚的に感じることは難しいかもしれません。それは、コンピュータがあまりに速いからなのですが。 彼は、コンピュータが内部で一つの命令を実行するのに一秒かかると考えてみます。これぐらいなら、そのスピードを感じることはできますね。仮にそう考えた時、ネットワークを通じてアメリカからヨーロッパにデータを送る処理には、どれくらいの時間がかかることになるでしょう? 彼の計算によれば、それには、5年かかるそうです! これも、PCの上で動くプログラムをプログラミングするのと、分散システムをプログラミングするのとは、質的に大きな違いがあるという Jim Waldo の指摘を、別の角度から裏付けるものだと思います。 スライドのpdfは、次のページからアクセスできます。 https://www.marulabo.net/docs/paxos/ Erik Meijerの “Latency as an Effect” は、次のURLからアクセスできます。 https://class.coursera.org/reactive-001/lecture/51

分散コンピューティングについての考察

 【「分散コンピューティングについての考察」公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「分散コンピューティングについての考察」を公開しました。ご利用ください。 https://youtu.be/tbgGc71ZEfQ?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 今回のビデオは、ネットワーク・プログラミングの難しさについて、述べたものです。 Jim Waldo らの論文 "A Note on Distributed Computing" の紹介です。 基本的な論点は、ローカルなマシン上でのプログラミングと、ネットワークをまたいだプログラミングとには大きな違いがあるということです。 この論文は、1994年のもので、クラウド技術登場以前のものですが、ネットワーク上の分散コンピューティングの特性についての Jim Waldo の指摘は、正確なものだと思います。 こうした問題意識は、プログラミングでネットワーク上のサービスを組み合わせることを普通に行なっている「クラウド以降」の若い世代には、むしろ希薄なように感じています。ただ、それはいいことだとは、僕は考えていません。 スライドのpdfは、次のページからアクセスできます。 https://www.marulabo.net/docs/paxos/ Jim Waldoらの論文は、次のURLからアクセスできますので、ぜひ、お読みください。 https://dl.acm.org/doi/book/10.5555/974938 https://scholar.harvard.edu/waldo/publications/note-distributed-computing

なぜ、今、Paxosなの?

【「なぜ、今、Paxosなの?」公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「なぜ、今、Paxosなの?」を公開しました。 https://youtu.be/2BVvqncqt1w?list=PLQIrJ0f9gMcO3i40ccbKvr70JP1nW5aS_ 資料は、次のページからアクセスできます。https://www.marulabo.net/docs/paxos/ 「なぜ、今、Paxosなの?」 それは、現在の日本で、大規模なシステム障害が連続して起きていることと関係しています。 ぜひ、ビデオ「大規模なシステム障害はなぜ起きるのか?」をご覧ください。 https://youtu.be/2BVvqncqt1w?list=PLQIrJ0f9gMcO3i40ccbKvr70JP1nW5aS_ これらの障害は、決して「想定外」の障害ではなく、現代の障害シナリオでは必ず想定されるべき、その意味では「典型的」な障害です。 大規模分散システムの構築を中心とする現代のIT技術は、まさに、こうした障害を乗り越えようとするところで生まれたものです。 問題は、IT技術者のライフサイクル(40年ぐらいでしょうか)からみると、非常に短い期間(10年ほどの間)に、歴史的と言っていい(こういう変化に遭遇することは二度とないほどの)IT技術の巨大な変化が起きたことにあります。 ただ、基本的には、基本的なことを学ぶしか、歴史的変化にキャッチアップする方法はないと、僕は考えています。21世紀の初頭に起きたIT技術の大きな変化の持つ意味をキチンと捉え返すことが必要です。 かなり回り道に思われるかもしれませんが、paxosの考え方を学ぶことは、そうした「学び」として、意味があると考えています。

1月29日 マルレク「分散合意アルゴリズム -- Paxos」へのお誘い

【 1月29日 マルレク「分散合意アルゴリズム -- Paxos」へのお誘い 】 今回のマルレクのテーマは、代表的な「分散合意アルゴリズム」であるPaxosの紹介です。https://paxos.peatix.com/ なんで今頃Paxosなのかと感じる人もいると思います。IT系の話題を取り上げるのは久しぶりなので、最初に、このセミナーの背景を述べておこうと思います。それは、現在の日本で、大規模なシステム障害が連続して起きていることと、すこし関係しています。 21世紀初頭のIT技術とITビジネスの大きな変化は、膨大な計算資源を集中してネットワークを通じてサービスを提供するクラウドと呼ばれる巨大なシステムの成立によって特徴づけられます。こうしたクラウドへのリソースの集中に対応して、クラウドのサービスを利用するクラウド・デバイスとしてのスマートフォンが拡散し、ほとんど全人類に普及します。 技術者のライフサイクルからみれば、このクラウド時代への移行は、驚くほど短期間に急速に進行しました。 大規模システムというのは、単に、システムの規模が大きいことを意味しません。今日では、大規模システムは、設計者がそれを意識するか否かに関わらず、クラウドと同じようにネットワークをまたいだ大規模分散システムの形を取ります。 プログラミングのスタイルも大きく変わりました。サーバーサイドでサービスを作るプログラマも、クライアントサイドでアプリを作るプログラマも、本人がそれを意識すると否とに関わらず、今日のプログラマの大部分は、ネットワーク・プログラマです。 クラウド技術はもちろんネットワーク技術なのですが、クラウド技術成立の前提には、「ネットワーク上で規模を拡大しながら、システム全体としては障害を起こさないシステムを作ることは難しい」という認識があったことです。この認識は「ハードウェアの障害は起きるものだ」という障害観の成立とともに、重要なものだと思います。 クラウドの技術は、まさにこうした困難を乗り越える技術として登場しました。また、それは、冒頭でも見たように、大きな成功を収めました。 ただ、僕は、変化のスピードが早すぎて --- 繰り返しますが、技術者のライフサイクルから見ればということですが --- ネットワーク上でシステムを構築するというクラウド時代の中心的変化の技術的な意味が、クラウド

1/29マルレク「分散合意アルゴリズム (1) Paxos」に向けて、資料紹介

【 「大規模なシステム障害はなぜ起きるのか?」 】 1/29マルレク「分散合意アルゴリズム (1) Paxos」に向けての資料紹介です。 一昨年(2020年)の5月のマルレク「AWSでの形式手法の利用」の第一部に「大規模なシステム障害はなぜ起きるのか?」というセクションがあります。 みずほの障害発生以前ですが、  ● 2019年12月4日 日本電子計算の自治体向けIaaS “Jip-Base”での障害  ● 2020年 1月8日 九州電力で発生した料金算定システムの障害  ● 同時期のGoogle Cloud, Microsoft Azure,  Amazon Web Servicesの大規模障害 を紹介して、その原因を考えています。 (みずほだけが障害を起こしているわけではないのです。) ぜひ、ビデオ「大規模なシステム障害はなぜ起きるのか?」をご覧ください。https://youtu.be/2BVvqncqt1w?list=PLQIrJ0f9gMcO3i40ccbKvr70JP1nW5aS_ pdf資料は、次のサイトから、ダウンロードできます。(最近、ページ・リニューアルしました。)https://www.marulabo.net/docs/aws-formal/ 1/29マルレク「分散合意アルゴリズム (1)  Paxos」へのお申し込みは次のサイトから、絶賛受付中です。https://paxos.peatix.com/

YouTubeチャンネルの登録が、1,000人を超えました!

イメージ
丸山のYouTubeチャンネル "Maruyama Lectures" https://www.youtube.com/c/MaruyamaLectures のチャンネル登録者が、はじめて1,000人を超えました。登録された方、ありがとうございました。 Facebookを調べてみたら、登録者 500人を超えたのが一年前の一月でしたので、この一年で登録者500人ほど増えたことになります。皆さんの支援に感謝です。 この調子で行くとあと100年もすると、チャンネル登録者は5万人になって、あまり人気のないYouTuberの一角に食い込むことができそうです。長生きして頑張ります。 500人を超えた一年前のFacebookの投稿のタイトルは、「1/2 Tuber」でした。あの時点では、登録者が1,000人を超えると、YouTuberを名乗れると思っていたのですが 。 YouTubeは、去年の夏に「登録者 1,000人を超えるだけじゃだめで、公開動画の総再生時間が4,000時間以上じゃなきゃダメ」にルールを変更しました。(涙) 僕のチャンネルの総再生時間は、まだ、3,000時間に届いていないので、YouTubeの基準から言うと、まだ一人前のYouTuber にはなっていないことになります。 「YouTuberを名乗る」とか「一人前のYouTuber」と言っているのは、正式には「YouTube パートナー プログラムの参加者」のことで、平たく言うと、自分の動画から広告収入を得ることのできる人のことです。 僕の動画にも広告は入ることがあるのですが、僕にはその「資格」がないので、収入は得られないのです。鼻先ににんじんをぶら下げられて、Googleの広告商売に利用されているだけのような気もするのですが。 あっ、そんなこと言っちゃいけないんだ。競争はファンを獲得する能力と自己責任に基づいて公平に行われています。 総再生時間の目標達成については、登録者が 4/3倍になればいいので、今年中には「一人前のYouTuber」になれそうです。 総再生時間を伸ばす別のアプローチもあることを、先日、友人から示唆されました。  「寝る前に、先生の動画を見ているのですが、   何言っているのか全くわからないけど、   よく眠れます。」 そうなんだ ... 皆さんも、朝まで流しっぱなしで、