以前、二人が会社を立ち上げたばかりのころに、データベースの話で盛り上がったことがあります。東大全体を見回しても、データベースシステムとその実装にまで興味がある人って意外と少なくて、Jim GrayのTransaction Processingを読んでいるなど、データベース屋さんの僕にとっては、貴重な話相手です。
ACM主催のプログラミングコンテストICPCの東大内予選(と僕が勝手に呼んでいます。本当は国内予選。ただ、各大学から3チームまでしか先に進めない)を勝ち抜けて、世界大会にまで出場するだけでもすごい人達なのですが。
今日は分散トランザクションについて話をしてきました。トランザクション処理は、スループットを上げるための実装はそうとう複雑なのですが、さらにマシンが複数台になると考慮すべき障害が増えてとたんに難しくなります。運用を考えたときのコストとか、商用DBといえど落ちることがある、などの話を聞けてためになりました。僕は研究者の立場なので常に新しいものを開発すればいいのですが、24時間常時動かすというのはやはり相当大変なことなのだと再認識。もしかすると、僕はこういった運用の大変さから逃れるために、研究の道に入ったのかも。
今回は短時間の訪問だったので紹介しきれませんでしたが、本当は最先端の話題でもっといっぱい話したいことがありました。主にMITのStonebraker教授(PostgreSQLを作った先生)のお弟子さんたちの話なのですが、C-Store (列ごとにテーブルを分割して圧縮。性能抜群), H-Store (トランザクションの意味を考えて、仕事の単位を分割、sequentialに処理して速度を稼ぐもの)など。One-size doesn't fit all (DBMSも用途に応じたものが必要)という時代の流れがあるんですね。現在主流のrow-oriented storage(テーブル行単位でディスクに配置していくもの)で、ロックマネージャーを外し、ログを外し、、、とやっても、トランザクションで100倍の性能を上げるのは難しいんです (OLTP Through the Looking Glass, And What We Found There. SIGMOD2008を参照)。
まだ教科書には載ってないけれど、トランザクションを高速に実現するための現在の主流であるsnapshot isolationを、性能をほとんど落とさずserializableにする話 (Serializable Isolation for Snapshot Databases。著者に実際に会ったときにソースコードくださいと話したらBerkeleyDB上での実装を公開してくれました)など。
XMLのような階層構造のデータもrelational databaseと同じ枠組みで扱える、という僕の研究の話もいつか紹介したいですね。こんな要素をもろもろ含んだ日本発の最先端DBMSを、彼らのように物を作ることに貪欲で、「わくわく」する感覚を持ち続けている人たちと一緒に作れたらいいなぁと夢見ていたりします。
PFIのオフィスは、自宅から徒歩圏内なので、本当はもっと遊びに行きたいのですが、職場まで遠距離通勤+子育て中なので、もうちょっと落ち着いてからかな。
後編:[本郷でお散歩] UT Cafe にも行きました。