Database Requirements in the Age of Scalable Services

IT Conversationsで配信されている表題の講演を聞いた。テーマはデータベースをいかにスケールさせるである。表題のリンク先でMP3ファイルがダウンロードできる。講演者のAdam Bosworthは現在Googleで働くデータベース分野ではたぶん著名な開発者なのだろう。XML Queryの標準化作業にも関わっているようだ。以下、印象に残った点を紹介しておく。

  • Googleは安価なハードウェアでサービスを構築している(注:具体的には普通のPCだと聞いていますが確認したわけではありません)。大雑把に言って100万ドルで、2テラバイトの主記憶と1ペタバイトのディスク領域を備え、毎秒5万回、1日10億回のアクセスに対応できるシステムが構築できる。通常のデータベースでは同じ金額のシステムではそれだけのアクセスに到底対応できない。Googleのシステムがなぜそれだけのアクセスに対応できるかと言えば、インターネット検索は問い合わせの内容が単純で、並列化によりリニアに性能を上げることが可能だからである。
  • Googleは単純な力任せの解決を旨としている。Google検索で綴りが間違っているときに正しい綴りの予想が表示されるが、それは高度なスペルチェックアルゴリズムがあるわけでもシソーラスの専門家の力を借りているのでもない。ユーザーの入力から綴り予測のデータを作っているだけである。綴りを間違ったために検索結果が思わしくなかった場合、ユーザーは正しい綴りで検索をしなおす。そのデータを使うのが最もうまくいくのだ。
  • ウェブはコンテンツを提供するしくみとして大成功を収めている。データに対して同様の位置付けのしくみが望まれている。そのための標準化の動きがあるが、成功しているとは思えない。XML Queryの制定には4年を要し、それはとても複雑でスケールしない。ウェブがスケールしているのは単純だからである。設計に4年を要するようなものは何か間違っている。
  • 現在に至るまでデータベースサーバーとクライアントの間の通信プロトコルに標準はない。ウェブにおけるHTTPとHTMLに当たるものがデータに対してできれば世の中が大きく変わる。RSS2.0とAtomは本質的に同じものでこれらがデータにおけるHTMLのような存在になれる。a9.comの検索APIがデータに対するHTTPとしての有力候補で、検索結果はRSSで返す。検索内容は単純なものに限定されるが、だからこそスケールさせられる。
  • データの意味付けの標準化が可能だとは思えない。データの意味付けについて同じ会社の人でも意見が一致しているのを見たことがない。何億人ものインターネットユーザーが1つの意味付け標準に従うとは到底信じられない。意味付けはアプリケーションに任せるしかない。