ことはじめ
先日参加したPDCATのポスターセッションでデータベースについて研究している学生がいた。自分とおなじM1の学生。研究内容は、マルチスレッドを使ったトランザクション処理の高速化について。最近はsiloっていう実装がよく使われているらしい。ここにかなり詳しく書かれている。どっかで聞いたことある話だと思って記憶を探っていたところ、夏に応募して落ちたある企業のインターンの内容とすごく似ていると思い出した。彼に、そのインターンで作っているデータベースエンジンについて知っているか尋ねてみたら、なんとそのチームでインターンをしているとのこと。 私の代わりに合格したのは君だったか。
その学生にどうやってデータベースを勉強したのかを尋ねてみた。そして有益な情報をたくさん得ることができた。データベースには「ヨット本」という聖書があるらしい。さらに、カーネギーメロン大学のデータベースの授業はすべてyoutubeで見ることができるらしい。(カーネギーメロン大学はデータベースの研究で有名らしい)よくあるような、データベースを使う側からみた授業(うちの大学でもあったタイプの授業)ではなく、完全にデータベースのシステム側、実装側の授業。最終課題では自分でデータベースエンジンを実装するらしい。ちなみにその学生は実際に自分でデータベースエンジンを実装して、それをポートフォリオにインターンに受かったらしい。まずはオーソドックスな2-phase-lockのデータベースを実装するのがいい、というアドバイスをもらったのだけど、そもそもtwo-phase-lockがなにかもわからないわけでね…ということでカーネギーメロン大学の授業を受けようって話だ。
詳細データベース。ストレージエンジンと分散データシステムの仕組み
CMU Advanced Databases By Andy Pavlo。上のIntroductionが終わったらこっちをやってもついていけるだろう。