1月29日 マルレク「分散合意アルゴリズム -- Paxos」へのお誘い
【 1月29日 マルレク「分散合意アルゴリズム -- Paxos」へのお誘い 】
今回のマルレクのテーマは、代表的な「分散合意アルゴリズム」であるPaxosの紹介です。https://paxos.peatix.com/
なんで今頃Paxosなのかと感じる人もいると思います。IT系の話題を取り上げるのは久しぶりなので、最初に、このセミナーの背景を述べておこうと思います。それは、現在の日本で、大規模なシステム障害が連続して起きていることと、すこし関係しています。
21世紀初頭のIT技術とITビジネスの大きな変化は、膨大な計算資源を集中してネットワークを通じてサービスを提供するクラウドと呼ばれる巨大なシステムの成立によって特徴づけられます。こうしたクラウドへのリソースの集中に対応して、クラウドのサービスを利用するクラウド・デバイスとしてのスマートフォンが拡散し、ほとんど全人類に普及します。
技術者のライフサイクルからみれば、このクラウド時代への移行は、驚くほど短期間に急速に進行しました。
大規模システムというのは、単に、システムの規模が大きいことを意味しません。今日では、大規模システムは、設計者がそれを意識するか否かに関わらず、クラウドと同じようにネットワークをまたいだ大規模分散システムの形を取ります。
プログラミングのスタイルも大きく変わりました。サーバーサイドでサービスを作るプログラマも、クライアントサイドでアプリを作るプログラマも、本人がそれを意識すると否とに関わらず、今日のプログラマの大部分は、ネットワーク・プログラマです。
“A Note on Distributed Computing”
"Complexity Quanta and Platform Definition"
https://wstrange.wordpress.com/2006/10/05/summary-jim-waldos-keynote-at-the-10th-jini-community-meeting/
第二部は、Paxos アルゴリズムを紹介します。
● Jim Gray and Leslie Lamport
"Consensus on Transaction Commit"
https://arxiv.org/pdf/cs/0408036.pdf
この論文自体は、決して読みやすいものではないのですが、ネットワーク環境での Two-Phase Commitの失敗例や、クラウド環境でPaxosのアルゴリズムがどう利用されるのかのシナリオベースで、わかりやすく解説できればいいと考えています。
第三部では、Paxos のような分散合意アルゴリズムを、どのように記述するのかという問題を扱います。今回は、先の論文のAppendixに出てくる、Lamportが開発した State Machine ベースのTLA+ という形式的言語を紹介します。
コメント
コメントを投稿