ビッグデータ基盤技術勉強会で喋ってきた

研究会が設立されるとか、前からそういう流れになるとは聞いていたが、今日(11日)に開催されたビッグデータ基盤技術勉強会に参加して発表してきた。招待してくれた川島先生には感謝しかない。それにしてもあれ研究会じゃないの、ビッグデータとかいまさら冠するなんて、なんというダサいネーミングセンスなんだと思ってはいけない。世間がやっと俺たちに追い付いてきたんだから、ダサいと思ってはいけない。飽きたころに慣れたものをやめてサッサと次に行っていいのは式年遷宮だけだ。

ぼくの発表もなるべく復習に徹して、研究会だからなにか新しいことを言わなくてもいい、インダストリアル枠だしわかってることを解説していこうというスタンスで解説した。詳細を省いているところも、語弊があるところもあるがお許しいただきたい。

さて丸一日盛り上がってワイワイやった後に、吉祥寺で本番の会があって、そこでまた(いつもの)いろんな人と話した。そこで川島先生と、僕の日本のデータベースコミュニティが盛り上がらないのはよいシステム系の講義がないという主張の話になった。「あしたの授業でそういう話するけど、どんな話したらいいと思います?」という話になったので、そこで伝えたんだか伝えてないんだかよく覚えてないんだけど考えをここにまとめておこう。

ガチで詰め込むのもアリだと思う

有名なものだとUCBのCS262があって、これはアメリカだとどこの大学でも同じ番号がつくようになっているのかな?基本的にはこれを半期やるだけでも全然違うのだけど、これが知ってる限り理想的かな。ちょっと検索してみただけでもいくつかある。

あとは、分散系もひと通り理論は聞きかじっておいたほうがよくて、やはりNancy Lynchの分散アルゴリズムの講義は、他に選択の余地がない感じ。佐藤先生がいう通り、用語がクラウドまわりと若干ズレていたり、実装なんか関係ねーよ!というガチ感はあるのだけど…プログラミングの世界でいうSICPみたいなものか。MITはそもそもElectrical Engineering and Computer Scienceの学科のOCWがガチすぎて目移りしてしまうね。

ここまで来たらあなたもいっぱしに知ってると語れるはず。次は論文をガンガンと読んでいこう。僕の同僚のReading Listが、贔屓目に見なくても分散まわりをきちんとまとめていて流れを抑えている。最近はSparkやらTezやらKafkaやらいろいろと目移りするように新しいソフトウェアが登場しているが、このReading Listを押さえているのと押さえていないのでは理解度が全然違う。

システム系の話は聞くんだけど実感がない

これは、質問されてから思いついたのだが、単にアメリカでされているようなトピック、内容の講義を真似しても意味がないというか、(僕がそうだったように)日本の大学生はそのレベルからスタートできないだろうという予想がある。これはどうしてだろうかと考えながら話して、…そもそも現実世界のサーバー群は分散システムなわけで、通信は本質的にAsyncronyだしPartial Failureが起きるのだけど、講義で耳で聞いてもピンとこない。そういった分散システムのモデルを講義で語るだけでなくて、デモンストレーションや思考実験で理解させるような工夫が必要なんじゃないかと提案した。

で、シャワーを浴びながら考えたのは、そういう学生実験がないことに思い至った。ぼくは大学に入った年から毎年のように何か実験がカリキュラムにあったのだけど、データベースや分散システムに関する実験がカリキュラムに組み込まれていなかった。最近はHadoopを使う何がしかの何かがあるという話も聞いているが、まあそれは使うだけだ。Hadoopを使って何かしら計算機科学について学びがあるかというと、僕はそんなにないと思う(並列処理なら、スレッドプログラミングやMPIの実験の方が学びが多い)。

あと、ひとつだけ古いんだけど良さそうな講義資料を見つけたのでここにリンクしておこう => モバイル通信プロトコル授業資料

主催側のみなさんには本当に頭が下がります。ごくろうさまでした。