8/10のNTT Tech Conference #2 にて発表の時間をもらってこのタイトルで喋ってきた
発表が決まるまで
これはNTTグループ内のソフトウェア・ネットワーク系技術者が集まるコミュニティで、誰が発表者になれるかは投稿されたProposalに対するコミュニティ内での投票によって選考される。
何を話したいか自分の中でも固まりきっていなかった上に、主催者の話をロクに聞いていなかった自分は小さい部屋で僕のことを知る人しか集まらない不人気セッションを勝手に想像しており、abstractを書く欄に「実世界で使われている分散システムを構成する際に理解してほしい議論についてkumagiが一人で滔々と語る。」という漠然とした説明を書いた。初心者にこそ聴いて欲しいという身勝手な理由でレベル設定をBeginnerにし、自己紹介欄に至っては本当は経歴などを色々書くべき所に「データベースの研究をしている」としか書いていなかったし、お前やる気あるのか、いやこれで落選するならそれもやむなしというつもりでProposalを投稿した。
そして投票結果はまさかの一位通過となり、無事にメイン会場でガッツリ発表時間を貰う事になった。初めからunconferenceに投稿しておくべきだった。この時点でチーム内slackには漠然としたリアクションしかしていない僕だったが内心は焦燥感に満ちていた。これはふざけている場合ではなくなった。
発表当日
当日というか前日からだが、社会人としての基本ができていない僕は案の定極限まで作業を遅延評価し続け1ページたりとも資料を作っていなかった。発表の数日前になってカレンダーを見て、発表日時は3週ほど先なので気長に作ろうと思っていた自分の浅はかさを悔いた。が、後悔はしても反省をしていない、多分こいつはまたやらかす。
明日のNTT TechConference2 の発表資料、前日になってやっと作り始めた。完全に滑り込みセーフしようとする癖が骨身に染み付いてて完全にダメ人間っぽい。
— KUMAZAKI Hiroki (@kumagi) 2017年8月9日
次ぐらいはまともな時期に資料を作り始めたい。 そして資料を作る集中力が続かなくてFGOを立ち上げ、水着イベントなのに期間限定が一つも引けてないので無料石で回したら1%SSRの更にピックアップすり抜けを引き当てる。
水着サーヴァント1人ぐらいでないかなと回したらこれですよ…なぜ… pic.twitter.com/a649zXoRDx
— KUMAZAKI Hiroki (@kumagi) 2017年8月9日
そしてFLP Imposssibilityの話の裏付けを確認した後で、そうなるとFailure Detectorの議論はどうやって収束性の判断をしているのだろうかと気になって論文をあさり始めたころのツイート。
明日(というかもう今日)の発表資料の作成に追われてる時にこそ関係ない論文読みが捗るのなんでだろ〜なんでだろ〜(白目 #まだ資料ほとんど出来てない
— KUMAZAKI Hiroki (@kumagi) 2017年8月9日
そしてもう空も明るくなりつつある4:33に、2PCとPaxosの説明を過去の資料から取り込んで説明を補正しながら悟りの境地に至りこのツイートを放ち、寝る。
資料完成してないけどもうどうにでもなーれ
— KUMAZAKI Hiroki (@kumagi) 2017年8月9日
そして多少の睡眠を取って昼過ぎに会場入りし直前まで資料を手直ししてRaftなどの説明を継ぎ足し発表を行う。同一時間帯にOSSコミッタや暗号ハンズオンの話があったにも関わらず幸いにして会場のどの机にも人が座っている程度の観客の入りを観測できた。(むしろそれら2つのセッションは自分の発表と被って居なければ聞きたかったセッションTop2である)
肝心の発表内容は、会場入りしてからも資料に手を加えたり、時間をロクに把握せずもちろん発表練習もしていない有り様で、いつもの噛み噛み高速トークでいろいろ口を滑らせながらPaxosの話がノリに乗ってきた所でタイムオーバーとなった。
「Paxos 難しいと言っている人は素人、簡単だから説明する !!」からの「時間がないのでとばします〜」、こんなのずるい、面白すぎる。 #NTTtech
— 🐧 のそらんばー (@SorAmber) 2017年8月10日
などと煽られたが完全にそのとおりである。
A. 間違えてる。うろ覚えで資料作るもんではない。ここに関しては僕が手を尽くして説明するより
この表いいな。HDDが遅いことがよくわかる(大陸またぐのと一桁しか違わない)。https://t.co/w5W0bLTyge pic.twitter.com/e2TccGVp7q
— TT@北海道 (@edy555) 2017年8月11日
この1ページを呟いたツイートが2000Fav&2000RT超えてる点が世の中の需要を捉えているなと感じた。個人的には発表資料をただ眺めるだけより面白い話を口頭でしているつもりなので是非生で見て欲しい。
Q. Latency Numberの出典はJeff Deanなの?
A. 僕は彼の発表資料から抜粋してきたから間違いでは無いが
https://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf
Teach Yourself Programming in Ten Years
右揃えと左揃えによる僕のスライドにおけるレイアウトは僕の工夫。
Q. Primary BackupとChain Replicaitonはバグっている事になるの?
A. Failure Detectorとそれに従うプロトコルを正しく実装すれば仮想的にFail-Stop故障モデルに近い状態を作り上げる事ができるのでその方向に倒したほうが良い。Paxosなんかは過半数のマシンが生きていないとシステムとして破綻してしまうけれど、Primary BackupやらChain Replicationやらは最後の1台だけでも生きていれば稼働するし、合意云々を頑張る必要もないので速度・効率・耐障害の観点では理想に近い。異常系の実装が難しいだけ。
Q. もっとちゃんと準備してちゃんと発表しよ?
A. すいませんでした。以後気をつけます。