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を試すには |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|