モノノフ日記

普通の日記です

MySQL ユーザコンファレンス 2008 - BOF#1 Drizzle

初日で一番面白かったセッションでした。BOFっぽく狭い部屋に集まってミーティングする感じがなんか楽しかった。集まってた人も他セッションはEnterprise向けの発表が多くてスーツが多かったのに、ここだけギークな人が集まってましたねw
走り書きのメモなんであんまりまとまってませんが晒しておきます。DrizzleはWebアプリに特化したものにして速度が最優先されているみたいです。いらないものは全て削ぎ落として本体はシンプルな方向に進んでいるような印象を受けました。そして、必要な機能はプラグインでカバーする感じです。

開発の契機
  • 組み込み開発の人とWebアプリ開発の人にヒアリング
    • 組み込みはストアドルーチンやビュー
    • Webはパフォーマンスを重視
コンセプト
  • Webアプリケーションにフォーカス
    • パフォーマンスが第一
  1. ERP
  2. Data Warehouse
  3. Analytic
    • 上3つは対応しないようにした
  • 32bitはもう忘れるべき、64bitで
    • 32bitの対応コードが無くなればより小さいものになる
MicroKernel
  • Core Kernelの周辺にプラグインを置く形式
Multi-Core
  • デフォルトのエンジンはInnodb
  • 数百のバグをFix
  • 機能を削除
    • View
    • Trigger
    • Prepared Statement
  • MicroKernelにはストアドプロシージャがない
    • PHP, Ruby, Javaなどプログラム言語で実装する
  • 1ページ表示するのに6クエリ発行したとしたら
    • MySQLの実装だとパケットのオーバーヘッドがでる
    • Drizzleだと0
ACLを取り除いてLinuxで使われるPAMを使う
データ型を見直してる
  • さまざまなblobがあるがDrizzleでは1つになる
  • UUID / IPV4(6)のシリアルデータ型の追加を予定
The Web is UTF-8
  • サイズは大きくなるが、PCの性能向上の前ではそのオーバーヘッドは微々たるもの
  • DrizzleはUTF-8で統一
MySQLは車輪の再発明が多い
  • 文字列処理とか
  • DrizzleではOSSを採用(貢献する人が多い)
ソースコードが小さくなった
  • 学習量も小さく
スケールアウトもしやすくなった
  • Optimizer
CodeはLaunchPadに
  • forkしやすいように
  • 日本語訳のプロジェクトもある
Buildbot
Open Sourceで活動
  • Sunの人も外部の人も関係なく関与してる
  • Drizzleの議論はDBAではなく現場のエンジニアの声を最優先している
30言語に対応予定
Federated X
Transport
  • 非同期
  • マルチプロトコル
将来
  • SQLを使わずにデータにアクセス方法も実装される

Q&A

  • レプリケーションの仕組みは?
    • GoogleのProtocolBufferでサーバ間の通信を行う
  • blobが1つになったけど、それ以外のデータ型は?
  • ストレージエンジンは互換性はなくなるという認識でOK?
    • 少し変更を加えてやれば対応できる
    • 複数のプロトコルをサポートする
    • 来年の四半期中にはリリースされる予定
  • Hadoopみたいなことできる?
    • カラムベースにしてるのはそこも狙い
    • Gearmanと組み合わせてそれらしいことをやりたい
  • Googleが使ってるInnodbを使ってる
    • MySQLのより25%早い
    • ハードウェアは昔のものを切り捨てる
    • 32bit, シングルコア
  • Geometry型のサポートは?
    • 誰もやりたがらないので進んでない
    • OSSなので欲しい人が自分で作るべし
  • HBaseみたいな分散型でSQLが使える製品になる?
    • 数週間後にその計画についてのリリースが出る予定
  • MySQLからDrizzleへデータのインポートは可能
  • プラガブルシステムの仕組み(インターフェースとか)
    • Pythonは対応するよ