Webサイトに求められるデータベースを考える
Drizzleプロジェクトの目指すもの、その先を読む
Drizzleとは
Drizzle とは、MySQLのもともとの目標である、使いやすさ、信頼性、そしてパフォーマンスに重点を置いたMySQLの派生プロジェクトで、Brian Aker氏(米サン・マイクロシステムズ CTO/Labs:元MySQL Director of Architecture)によって立ち上げられました。
MySQLと比較して機能面におけるDrizzleの大きな違いは、サーバアーキテクチャをマイクロカーネルにすることで、サーバ(MySQLでいうmysqld)には必要最小限の機能しか搭載せず、代わりにすべての機能が「プラガブル」注1であることです(図)。

図 Drizzleと各モジュール・コンポーネントの関係
パフォーマンス面においては、並列性を高めることをミッションにしており、次世代のハードウェアに適し、かつWebとクラウドコンピューティングの分野をターゲットにした次世代のDBMSを目指しています。DrizzleプロジェクトはBrianによって編集注2008年7月のOSCONで発表されました注2。
注2)OSCON:http://en.oreilly.com/oscon2008/public/content/home
google videoではBrianのプレゼンテーションを見ることができます。
http://video.google.com/videoplay?docid=-1985562674353809731&hl=en
編集注)本稿ではAker氏への敬意と親しみを込め、また、筆者である前坂氏とAker氏の親交を鑑み、以降、氏をBrianと表記します。
プロジェクトはこうして始まった!
Drizzle の立ち上げの直接的なきっかけは、ラックスペースのCTOがBrianに「memcachedやGearmanを内部的に組み合わせて使える、スリムダウンしたMySQLを作ろうと思ったことはないのか?」と聞いたことでした。
Brianはその会話以前に、世界中を飛び回りながらさまざまな企業の手助けや技術者との会話の中で、スリムダウンしたMySQLの需要があることを認識していたことと、自分自身がMySQL 4.1以降に追加された機能に疑問を抱いていたこともあり、MySQLのスリムダウンに実験的に取り掛かりました。
時間がたつにつれ、Brianは同じ考えを持つ仲間に声を掛け、徐々に参加者が増えていきました(筆者も、この段階でプロジェクトに参加しました)。現在では、ソフトウェアエンジニア、コンサルタント、Linuxスペシャリスト、データベース管理者などのさまざまな人たちが集まるプロジェクトにまで発展しました。
マイクロカーネルを目指す
Drizzleではコミュニティで必要がないと判断されたコンポーネントを取り除き、機能を追加したい場合は必要に応じて、定義されたインターフェイス経由で追加できる構成を目指しています。
例えば、セキュアな環境でデータベースサーバを運用するのであれば、データベースサーバ側の認証メカニズムは無駄なオーバーヘッドになります。
Drizzleのモデルでは、すべてのコンポーネントをオプション化することで、使用するシステム管理者のノウハウと企業ポリシーに合った、最適なカスタムDBMSを実現することが可能になります。加えて、Drizzleではデータタイプも追加できるようになります。
モダン・次世代のアーキテクチャがターゲット
Drizzleでは、このほか、次世代アーキテクチャへの対応を積極的に行う予定です。以下でそれらを見ていきます。
Massively Concurrent(超並列)な世界で戦うデータベース
現在のハードウェア市場のCPUはスタンダードでデュアルコアやクアッドコアですが、Drizzleでは32コアからのマシンをターゲットにしています。理由は、1〜2年後の近い未来には32コアのマシンが市場でスタンダードになっていると考えられるからです。
昨今のオープンソースソフトウェア界隈では並列プログラミングの話題になるとCAS Operation(Compare And SWAP Operation)や、より速いread/writeロックなどの話が目立ちますが、われわれはそもそも速いロックなど存在しないと考えています。従って、DrizzleではMySQL 6.0で使われているロック機構の多数が取り除かれています。
モダンなCプログラミング
Drizzleはコードベースをモダンにするため、また、32bit/64bit間のポータビリティ、可読性、またメンテナンス利便性を向上するためにC99規格を採用しました。このポリシーのため、DrizzleはC99に対応したコンパイラがなくてはビルドできません。
Drizzleのライセンス
Drizzleは大きく分けてサーバ、クライアント、プラグイン、ドキュメンテーションの4つのコンポーネントがあり、それぞれに対して個別にライセンスを発行します。
Drizzleサーバ
サーバはMySQLのコードベースを受け継いでいるためGPLv2 を採用しています。
Drizzleクライアント
クライアントについては、特に規定はなく、Contributor Agreementも設けないフリーな形態です。
Drizzleの開発チームで新しく作ろうと施策しているクライアントライブラリは、現段階ではBSDライセンスを使おうかという話になっています。
Drizzleプラグイン
プラグインコンポーネントはクライアントと同様、プラグイン作者が自由にライセンスを選べます。
ドキュメンテーション
ドキュメントのライセンス形態については現段階では未定です。
ここまで紹介してきたとおり、Drizzleはモダンな仕様を目指しています。MySQLやSQLiteではなくなぜDrizzleのような仕組みが必要なのかについて、次ページで詳しく見ていきましょう。p>
| 1/3 |
| Index | |
| Drizzleプロジェクトの目指すもの、その先を読む | |
| Page 1 ・Drizzleとは ・プロジェクトはこうして始まった! |
|
| Page 2 ・SQLiteではできないこと ・MySQLそのものとの違いはどこにある? |
|
| Page 3 ・プロジェクトは完全にコミュニティベース ・いますぐDrizzleを試すには |
|
TechTargetジャパン
- やはりSELECT文は永遠のテーマです (2012/2/7)
Database Expertフォーラムの2012年1月のアクセスランキングをお届けします。定番の記事を一気に追い抜いてあの記事が…… - SELECT文で取り出したデータを加工して表示する (2012/1/25)
SELECT文で取り出したデータを対象に四則演算する方法など、データを見やすくする方法を解説します - 2012年は私たちが勉強会を盛り上げる! (2012/1/23)
2011年12月、データベース業界初の女子会が発足しました。そこで、女子会を盛り上げていってくれそうな2人にお話を伺いました - 複数の条件を指定してSELECT文を実行する (2012/1/13)
複数の条件を指定してSELECT文を実行する方法と、条件指定に必要な論理演算子、比較演算子の役割を解説します
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
