Firebird Projectのニコライ氏、Firebirdの将来を語るInterveiw

9月4日に行われた「オープンソースカンファレンス 2004」。この招待講演とオープンソースのRDBMSであるFirebirdに関するテクニカルセミナーのために来日したFirebird ProjectのProject Administratorであるニコライ サモファトフ氏に今後のFirebirdの動向を聞いた。

» 2004年09月17日 14時00分 公開
[加藤大受,ITmedia]

 9月4日に行われ、多くのオープンソースコミュニティが参加した「オープンソースカンファレンス 2004」。この招待講演とオープンソースのRDBMSであるFirebirdに関するテクニカルセミナーのために来日したFirebird ProjectのProject Administratorであるニコライ サモファトフ氏にFirebird日本ユーザー会の理事長である加藤大受氏が今後のFirebirdの動向を聞いた。

ニコライ氏 ニコライ氏。IT業界で尊敬する人は? という質問には、UMLの開発の中心であり、オブジェクト指向設計手法のブーチ法を生み出したIBMフェローのグラディ・ブーチ氏を挙げた。

加藤 ニコライ氏のコンピュータへの関わりと経歴について教えてください。

ニコライ 小学校時代には自宅にコンピュータがあったので、いつからさわり始めたのは明確に覚えていません。その後、14歳ぐらいからアルバイトで叔父の会社のプロジェクトに参加し、C言語でプログラムを書いていました。そのプロジェクトは石油関連企業の財務関連のプロジェクトで、そのときに初めてFirebirdの源流となっているInterBaseのVersion 4.0を利用し、BtrieveやdBASEのデータベースに比べ非常にコンパクトで信頼性のあるデータベースであることを知りました。

 2001年に、金融系のシステム会社に勤務し、次世代の財務系システムのプロジェクトに参加しました。そのプロジェクトの開発リソースはとても少なかったのですが、分散システムで1日に数百万のトランザクション処理を行うだけでなく、複雑なロジックを処理する必要がある先進的なプロジェクトでした。このプロジェクトは最終的に成功を収め、現在はロシアの非常に大きな石油企業で利用されています。

 成功の理由はLinuxベースでFirebird、FirebirdのJDBCドライバであるJaybird、オープンソースのORBであるOpenORBやOminiORB、Xercesや最終的にはApacheやTomcatなどのオープンソースを非常に活用したシステムであったためです。最初はOracle 9iやMS SQL Server 2000などもサポートしていましたが、規模が大きくなるにつれてそれらの商用製品のコストが問題になるだけでなく、ミドルウェアの配布の問題にぶつかったため、すべてオープンソースベースで開発しました。

加藤 ちなみに、一番好きなプログラミング言語は何ですか?

ニコライ Javaが一番好きで、次がC++です。Javaはとても分かりやすいオブジェクト指向のプログラミング言語で、自分のコーディングミスが分かりやすいバランスの取れたアプリケーション開発用のプログラミング言語であると思っています。システムプログラミングとしてC++は非常に優れていると思います。

加藤 InterBaseやFirebirdの経験は非常に長いようですが、なぜFirebirdプロジェクトへ参加したのでしょうか。

ニコライ 前述のプロジェクトでFirebirdを利用したのですが、アプリケーションサーバの安定性を高めるにはFirebird自身の不具合の修正が必要だったため、Firebirdプロジェクトに参加しました。それからFirebirdの足りないオプティマイザ周りの機能強化などを行ったことでアプリケーションサーバの安定性も非常に増すことができました。また、FirebirdプロジェクトはBorlandが公開したC言語ベースのInterBase 6.0のコードをC++言語に書き直し、機能強化を進めていただけでなく、Firebird 2.0で今までBorlandが培ってきたアーキテクチャを変更するという非常にチャレンジングなことを行っていたため、その財務システムの終了後、さらにFirebirdプロジェクトに深く参加するようになったのです。

 また、Firebirdプロジェクトに関わったことで、Firebird FoundationのプラチナスポンサーであるカナダのトロントにあるBroadView Softwareに誘われ、現在はマルチレベルのインクリメンタル・バックアップユーティリティであるNBACKUPという製品の開発とFirebirdの開発を行っています。

加藤 現在はFirebirdプロジェクトのProject Administratorとしてプロジェクトの開発全体を見ているわけですが、Firebirdの利点はどこにあると思いますか。また現在のバージョンの問題を教えてください。

ニコライ まずFirebirdの利点ですが、軽量であり配布性に優れたRDBMSがオープンソースであり、無料で使えるということです。私自身としては非常に有能なデータベースエンジンで機能面も優れており、"Small Oracle"であると思っています。

 一方、問題点としては、古くからのBorlandのアーキテクチャを引きずっているため、ヨーロッパ地域の文字セット、マルチバイト対応やUNICODE対応が弱いことです。また、数Gバイトのデータベースであれば問題ありませんが、それ以上ではスケーラビリティの制限があります。これについてはFirebird 3.0で対応予定です。

加藤 では、今後のFirebirdのロードマップについて教えてください。

ニコライ あと4〜5週間で最初のリリースが公開される予定ですが、Firebird 2.0があります。まず、Firebird 2.0ではインデックス周りの構造を大きく変更します。今までFirebirdのインデックスはプレフィックス圧縮されたとはいえ実際のデータを持っており、問い合わせが起きるとスパースビットマップと呼ばれる該当するレコードにマークを付けて処理をしていました。この方法では大量のデータの削除や更新が発生すると、実データとインデックス内のデータの両方を書き換える必要があり、ディスク容量も多く必要とするためI/O処理に時間がかかります。これをFirebird 2.0ではインデックスにはレコード番号だけを保存するように変更します。すでにお話ししたように完全にコードベースがC++言語になり、C++言語の利用によりメモリをさらに効率よく利用できるだけでなく、パフォーマンスが改善されます。

 また、エンジン内部についてもオンディスク構造体(ODS)が改良されるだけでなく、財務システムのプロジェクトで私が修正しFirebird 1.5では反映できなかったオプティマイザ周りの改良のコードもFirebird 2.0に含まれます。Firebird 2.0とは別ですが、ヨーロッパ地域の文字セットやマルチバイト対応、UCS-4の対応についても行われています。

 InterBaseの初代アーキテクトであったJim Starkey氏が行っているFirebirdの統一ロックマネージャである改良されたY-Valueアーテキクチャの採用、SMPの強化やクラスタリング対応、64ビット版対応を行っているVulcan ProjectをFirebird 2.0にマージし、Firebird 3.0として早ければ来春にでも最初のリリースを行う予定となっています。

Firebird 2.0

Firebird 3.0

加藤 ニコライさんが思うFirebirdのゴールは何でしょうか。

ニコライ FirebirdのゴールとはFirebirdがDBMSの利用者や管理者にとって、とても使いやすい機能が提供されている優れた製品になることです。また、オープンソースのDBMSだけでなく商業製品を含め、FirebirdがDBMSを引っ張っていく存在になることでしょう。

加藤 最後に、日本でのFirebirdの本格普及はまだまだこれからですが、これからこの技術に取り組もうと考えている若いエンジニアに何かアドバイスをください。また、Firebird日本ユーザー会へのメッセージもお願いします。

ニコライ とても簡単なことです。まずはFirebirdを評価し、続いてソースコードをダウンロードして自分でビルドしてみてください。それから簡単な不具合を修正したりしながら、製品を理解していってもらえるといいでしょう。ユーザー会との方とはFirebirdプロジェクトでお会いしたいですね。

筆者あとがき
当初、Project Administratorという立場の方なので年配の方だと思っていましたが、現れたニコライ氏は22歳ということに非常に驚きました。また、ボーランドでInterBaseのQAを行っていた筆者がおぼろげに理解していたエンジンの内部構造を非常に理解し、それを改良しているエンジニアスキルの高さに脱帽しました。 「オープンソースカンファレンス2004」でのニコライ氏のセミナーの内容については別途ユーザー会のWebサイトなどで紹介したいと思います。

ニコライ氏経歴
モスクワ生まれ。現在、カナダのトロントにあるBroadView Software社にてデータベースエキスパートとしてNBACKUPというバックアップソフトの開発を行いながら、Firebirdプロジェクトのプロジェクトマネージャとしてコアエンジンのアーキテクチャレベルの設計と実装を行う。次期メジャーバージョンアップであるFirebird 2.0の開発、UCS-4対応の国際化、SQLプロファイル機能、LOBの拡張などを担当している。

加藤 大受
Firebird日本ユーザー会理事長。ボーランド社でInterBaseのQAエンジニアおよびInterBaseのプロダクトマネージャとしての経験があり、現在もFirebirdの開発および浸透に関わっている。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ