Interview with Jim Starkey on InterBase World

Interview with Jim Starkey
2003 / 2 / 9
2004 / 3 / 1 翻訳版 DelphiマガジンVol.33 掲載
Written by Marina Novikova
on InterBase World (URL http://www.interbase-world.com/)
翻訳:林 務(株式会社アペックス)

 本インタビューは、InterBase World のWebサイトでMarina Novikova氏によって公開されたものを、Marina氏とJim氏の許可によって翻訳したものです。
 Jim Starkey氏は言わずとしれたInterBaseの産みの親として、Firebird / Yaffilのプロジェクトメンバーに大きな影響を与えています。このインタビューの中ではオープンソースに興味がないとか、Firebirdには余り関わるつもりがないと言われていますが、2003年12月からはFirebirdの64bitCPU対応のためのVulcanプロジェクトに参加してます。DmitryやNickolay等の若手エンジニアとのコラボレーションに期待が高まります。
 Marina Novikova氏はロシアの企業で英文翻訳とテクニカル・ライターをするかたわら、InterBase Worldの管理者をなさっています。Marina氏はInterBase Worldで、毎週のようにインタビューやレビューを更新されているのですが、このインタビューは、技術的なことやビジネスに関することだけでなく、各ゲストの人となりがよく現れていて、私はいつも楽しみにしています。


Marina Novikova:  学歴をお聞きしてもよろしいですか? また、これまで働いた中でどこが一番気に入っていましたか?

Jim Starkey: 私がコンピュータに関わり合うようになったのはちょうど高校生になった頃のことでした。地方の大学は政府から補助金をもらって、高校の生徒達にFORTRANを教えていたのです。一番最初にパンチカード(ググッてみてね)を打ったときは、曲がってしまったことを覚えています。最初に触れたコンピュータはIBMの7040だったのですが、とても大きな部屋を専有するくらいばかでかくて、そのくせメモリは全部で32Kバイトしかなかったのです。翌年私は15歳になったのですが、その時に最初のコンピュータ言語をデザインしました。その言語は機械語とアセンブラをまねしたものでした。それ以来ずっとコンピュータと関わり続けています。 私の学位は、実は純粋数学に関するものなんです。私の公式のコンピュータ・サイエンスに関するバックグラウンドは、たった一つの特別プロジェクトコース に関するものだけです。 私の最初の「本当」のコンピュータに関する仕事は、 インターネットの先駆けであるARPAnet のためのデータベースマシンを作り上げるためのプロジェクトに関する調査でした。それは、アメリカ・コンピュータ社( 7人の有名人による会社 ) で行われました。そこにいた間、Codd博士のリレーショナル・データベースに関する初期の論文に出会ったのです。リレーショナル・データベース理論は、ばかげたほどアカデミックな言葉によって論じられていましたが、いったんその姿を現すと、じつに純粋で、単純で、エレガントだということがよくわかりました。そんなわけで、コンピュータが最初に私にとりついて、2番目はリレーショナルデータベースだったというわけなんです。  私の第 二 の「本当」の仕事はDECでのものでした。DECはとても働きやすいところでした。それは、もうほとんど無政府状態といったほうがいいでしょうね。私は、 Datatrieve と呼ばれる非常に成功した製品を作り上げました。実はこれ、マネージャがばかげた政治的な策略のためにキャンセルしたんですが、それは何の意味も無かったんです。そこで私は次のような月次報告書を書き始めました「Problems:プロジェクトはキャンセルされた。これが元に戻せないのであれば、開発スケジュールに影響を及ぼすであろう」。やはり、それも何の役にも立ちませんでした。第 2 のバージョンは、予定どおりに出荷されました ( まだキャンセルされたままでしたが ) 。こんなにマネジメントが最善の努力をしているにもかかわらず成功する会社は賞賛に値しますよね。しかし、ゴードン・ベルが DEC を離れたので、私も辞める時がきたのを悟りました。

Marina Novikova: あなたは、非常に興味深いプロジェクト Netfrastructure にかかわってますね。こういえば当たっているのかわからないのですが、Netfrastructureは、 SMP に最適化された SQL ‐サーバで、Java サポートをビルド・インしたものなのでしょうか?

Jim Starkey: Netfrastructure の背景にある本質的アイデアは、コンテンツ、プレゼンテーション、それからロジックを分離することです。コンテンツは「コンテンツ・ストア」に存在しているのですが、それはJDBC に準拠したマルチユーザでSQL‐ベース、トランザクション‐ベースの「コンテンツ・ストア」なのです。我々はそれをデータベースとは呼んではいません、というのも私はデータベース・マーケットが大嫌いだからなのです。そういうわけで、それは「コンテンツ・ストア」なのです。コンテンツ・ストア、OK?プレゼンテーションは本当に気の利いたページ生成エンジンとJava仮想マシンに統合されたロジックによってハンドリングされています。全てのコンポーネントは共通のロール・ベースのセキュリティ・スキーマを共有しています。 データベース(えーと、コンテンツ・ストアね)のアーキテクチャーはInterbase/Firebirdとは根本的に異なるものです、それはコンピューティング・プラットフォームの根本的な変化を反映しているからです。私が最初のバージョンのInterbaseを設計してアポロ DN320に実装したとき、それは十分に速かったし、随分お金もかかったし、2メガバイトを使い切ったものでした。今では、地方の商店街で売っているような最も安価なマシンでさえ128MBのメモリを積んで、何百ドルかでギガバイトまで拡張することもできます。賢明な人でしたら、ギガバイトのメモリを2MBで利用するのと同じ使い方はしないでしょう。エンジンはシングルプロセスで、マルチ・スレッドに対応して、SMPに連動します。 Netfrastructureの別の側面で興味深いのは、アプリケーションのトポロジーが逆転するということです。アプリケーションはデータベース・エンジンの内部で実行されます。そう、あたかも巨大なストアド・プロシージャのようにね。JDBCメソッドの実行は半ダースの機械語なんだけど、実際にはスレッドスイッチ、コンテクスト・スイッチ、プロトコル・スタックを下っていって、プロトコル・スタックを上っていって、データベース・エンジンに対してサーバ・レイヤーから呼ばれ、検証されて、それから恐らく各ステップで引数が変換されて、そしてまた元に戻されているわけです。そんなわけで、我々は、 2、 3 ダースのナノセコンドと大体 10 ミリセカンドの間の差異について論じているんです。それは10の何乗にもになってしまう。どんなデータの移動に対してもこれは起きてしまう。それから、もちろんだけど、この仕事は徹底したセキュリティ環境の元で行われています。つまり、アプリケーション言語はサンドボックス の中で見事に動いて見せなくてはならないわけです、Javaである以上ね。そういうことで、自分でJava仮想マシンを書き上げてしまったのです。

Marina Novikova: みんなが言っていることですが、Netfrastructureを一から作り上げることで、あなたが元々 Interbase/Firebird で使われていて、もっとも理解しているマルチ・ジェネレーション・アーキテクチャのアイデアを実装するのを助けたのでしょうか。言い換えれば、あなたは、次世代の Firebird 開発者に対して、どうやって小さくて速いサーバーを作り上げればいいのかについて、わかりやすくデモンストレーションを行ったのでしょうか。私の言っていることは当たっているかしら?

Jim Starkey: 私は、マルチ・ジェネレーション・アーキテクチャのアイデアを実装するのを助けたわけではありません、確かに私はそれを発明しました。しかし、それは私が DECにいた時のことです。そうまだ私がInterbase を始める前のことです。DEC は、私と一緒にやろうとはしなかったので、結局自分自身でそれを作り上げました。 NetfrastructureとInterbase/Firebird の間の大きな違いは、 Netfrastructure がディスク上ではなくメモリ上でのマルチ・ジェネレーション であることなのですが、Interbase/Firebird はディスク上でジェネレーションを保持しています。この変更には 2 つの主な理由があります。一番目は、メモリが安くなって豊富に使えるようになったということ。二番目は、 Interbase は共有メモリを使わないクラスタ向けに設計されていたので、ディスクを使うしかなかったのです。そんなわけで、素晴らしいことに Netfrastructure は Firebird より最低でも 10 倍速くなったのですが、実は本当に重要なものは私がスイープについて説明する必要がなくなったことなのです。

Marina Novikova: そうすると、あなたの意見によれば、Interbase/Firebird のマルチ・ジェネレーション・アーキテクチャはサーバの開発上の妨げとなるのでしょうか?非常に多くの更新があった場合、ガーベッジ・コレクションは更に遅く予測できない状態になるということでしょうか。

Jim Starkey: とんでもない。あなたが InterBase/Firebird のディスク書込みの簡潔さをを伝統的なトランザクションログと比較するなら、マルチ・ジェネレーション は、簡単に勝つでしょう、それはディスクのオーバーヘッドがより少ないという統計で現れるでしょう。ブロックヘッドだけがボトル・ネックを作り出すでしょうが、 Interbase/Firebird は競合しているシステムと比べてより少ないブロックヘッドしか発生させません。

Marina Novikova: あなたは、 Java がデータベース・ウェブ・アプリケーション開発者にとって最も良い選択であると思いますか?

Jim Starkey: 絶対的で正統的なアーキテクチャがあるので、Java はすばらしい言語です、小さくてシンプル、そして堅固です。しかし、それが何にでも向いているかと言えばそうではありません。Javaは、アプリケーションの意味を表すためには非常に良いプログラミング言語です – 小さくて、シンプルで、優雅で、堅固。サンドボックス実行モデルは、アプリケーションコードが通常ふさわしくないとされる場所での実行を許します、データベース ( えーと、コンテンツ・ストアね ) システムの内部でのようなところでね。一方、 Java における文字列の扱いに関するパフォーマンスは悲惨なほどです、それからスレッド同期化のプリミティブな部分、2つ の状態を持つMUTEX も、哀れなほど遅いのです。Netfrastructure では、アプリケーション・ロジックのために Java を使用していますが、コンテンツ・マネジメントとページ生成に関してはC++を残しています、そのことは実装が物語っているんですが。

Marina Novikova: どうして、Interbase/Firebird のインデックスはユニ・ディレクショナルなのでしょう?またどうして、Interbase/Firebird のインデックスはバランスド・ツリーではなくて、シンプル・ツリーなのでしょうか ( 我々が利用可能なソースがある、現在のバージョンでも確認することができるのですが )? それは、 Interbase/Firebird アーキテクチャの制限によるものなのですか ?

Jim Starkey: それは全て1 つの個人的な見解に還元されます : 私は、チューニングが嫌いなんです。コンピュータやソフトウェアは、スマートであるべきだと思っています ( 最適化なんてことについて考えなくてもすむようにね ) 。 この問題は、クラスタ化インデックスと非クラスタ化インデックスの対立なのです。伝統的なデータベース・インプリメントは、インデックスページとデータベースページの間でインデックスが飛び跳ねて歩き回らなくてはなりません。開発者はそのことを非常に迅速に学んだのですが、このことはディスク・アクセスにとって大変悲観的な結果をもたらします。そのため、彼らはレコードの物理的オーダがインデックスオーダと一致するように、クラスタリングを発明したのです。しかしこのことはスペース管理の問題と、ページ・オーバーフロー、 書き戻しのストラテジー、最適化の問題、それから全般的な混乱状態へ陥らせました。データベースのユーザは、物理構造、論理構造、アクセスパス・ストラテジー、それからインデックス設計を計画しなければならなくなってしまいました。そして、それらが必然的に引き起こす悪い結果に対して、データベース開発者はユーザの設計が悪いと非難したわけです。 そんなわけで私は、代替インデックス技術を開発したんですが、 それはbtree を Datacomputerの 反転と結合したものです。全般的なアイデアは、非常にシンプルなものです。インデックスとデータページの間を渡り歩くよりむしろ、インデックスは最初にスキャンされて、スパース・ビット・ベクターにおいて選択されたレコードを示すビットをセットし、ビット・オーダーに従ってレコードを処理し、それはまたディスク上の物理的配置にしたがっているわけです。このことは、いくつかの大きな勝利の鍵を持っています。一番目は、全てのインデックスは、うまく取りまわされたクラスタ化インデックスのように動作します。二番目には、インデックスバケットは、 二相ロッキングに支配されません。三番目に、ブーリアン、つまり「AND」と「OR」に関する操作について、ビットマップを媒介として実質的にコストなしに実行可能となります、つまりオプティマイザーが代替インデックス間で選択をする必要性そのものを消去してしまうのです。 そんなわけで、それは全く問題とならないのです、つまり最低でもインデックスが昇順か降順かということについてはね。インデックスが最初にスキャンされ、それからレコードがその次にフェッチされます。あなたがレコードを並び替えたいと思うなら、物理的順番でレコードをフェッチしてそれを並び替えるこの方法は、ランダムアクセスと共にディスクアームを鳴らしてフェッチするよりも「いつでも」速いのです。そして更に多くのレコードが関連し、さらに多くのソートがあれば尚更です。 インデックスの中を渡り歩くことが意味をなす唯一の時間というのは、あなたが 何百万ものレコードの中で、最初のいくつかを問い合わせた時だけです。実際のところ、これはdBase エミュレーションをしていた間は、デフォルトで起こりうるケースでした。そんなわけで、我々は賢明にも、バイナリ・アクセス言語を付加し、こうしたケースを理解するオプティマイザを準備し、インデックスを渡り歩いているのです。 Interbase/Firebird は普通の btree ( 元々バランスがとれている ) です。私は、バケットを空にして再結合するためのコードを書きませんでした。なぜなら、データの統計が通常安定していて、従って、スペースは再使用されるであろうし、もっと他に私が行うべき多くの重要なことがあると思ったからなのです。いつかは、重要なことをやり尽くして、バケットの再結合に手をつけることになるだろうと、信じていますが。

Marina Novikova: Interbase/Firebird は、完全なリレーショナルDBMS ですよね? 結局のところ、Forced Writesオプションが有効でない時、各トランザクションはそれぞれのコミット後に必ずしもセーブされるとは限らないわけですが。ACID におけるD は、 Durability を意味しているので、トランザクションがコミットされるなら、それは小さなハードウェア・エラーの場合には失われないことが確実でなくてはなりません。Interbase/Firebird においてはForced Writes をしなければならないわけですが、しかし、これは、オペレーションのスピードを減少してしまいます。このことについて何かお話し頂けますか?

Jim Starkey: そうですね。Interbaseは、信頼性の高いディスクを持つ堅牢なオペレーティングシステム上で動くように設計されましたが、Unix では、これは、パフォーマンスと絶対的信頼性の間でのトレード・オフを意味しました。私は、トレード・オフが好きではないのですが、そこにはそれがあったわけです。シリアル・ライト・ログ は、トレード・オフをほとんど消去するでしょうが、クラシック・モデルにおいてはそれを実行することは不可能です。Netfrastructure は、シリアル・ライト・ログのためのアーキテクチャーになっています。しかし、バッテリバックアップを持つ Linux はこれまで決してクラッシュしたことがありませんので、私は自分のトロくさいインプリメントのおかげで、睡眠時間を削られずにすんでいます。

Marina Novikova: Interbase 6 のソースコードが公開された後で、多くの興味深いものがあることが分かりました、不幸にも実現することがなかったものですが、例えば、式に対するインデックス、 双方向のカーソル、 XNETや、その他のものです。どうして、それらの開発者がそのアイデアを完成しなかった、と思いますか? これは、アーキテクチャの制限によるものですか、あるいは時間が足りなかったとか、または他の何かの不足のためだったのでしょうか? それから、あなたは、 オープンソースのDBMS についてどうお考えですか? Linux は今上昇傾向にありますが、オープンなデータベースは今後、DBMS マーケットのかなりの部分を占めると思いますか ?

Jim Starkey: オープンソースプロジェクトのアキレス腱は、意思決定の方法にあると思います。コンセンサスに最も依存しているのですが、革新に関するコンセンサスは、とてもとても難しい。そんなわけで、オープンソースプロジェクトは、標準化へ向かう傾向があると思っています。Linux は、良くも悪くも、Posix と Unix に基礎を置いている。OK 、それらは20 年間の間に陳腐化してきたものだが、ふーむ、たしかにうまく動いています。一方、 SQL はテーマではあっても標準化されていません。現実の標準は、あらゆる目的に対してほとんど役に立たないもので、インタオペラビリティに沿って作成されたものにすぎないのです。確かなことは、プロジェクトを組織化するために必要なものは何もないということなのです。 データベース ( とコンテンツ・ストアね ) システムが扱うべき重要で、興味深い問題は山積みです。例えば、ウェブの基礎は検索です。どのようなデータベースシステムが、オープン・コンテクスト検索をサポートしているでしょうか? 私が知る限り、一つだけです。どのようなデータベースが、ユーザープロファイルに基づくデータを自動的にフィルタリングするでしょうか? 私が知る限り、一つだけです、それはコンテンツ・ストアと呼ばれています。 Firebirdの連中は、セキュリティ・ホールをふさぎ、システムを安定させ、バグを修正し、問題点を取り除く良い仕事をしてきました。そのシステムは、うまくマイナーチェンジすることを必要としていて、いまではそれは一つの答えを持っています。しかし、私はそういったことによって、データベース・テクノロジーにおける世界的リーダーとしての Interbase の伝統的な役割が取り戻せるとは思いません。Interbase/Firebirdは異種接続性、 二相コミット、カスケーディング・トリガ、ユーザー定義関数、イベント・アラータ、BLOBフィルタ、配列サポート、 双方向のマルチベンダーゲートウェイ等を持つ最初のデータベースでした。しかしその後、私はオープンソースプロジェクトが革新を促しているのを全く見ていないのです。 私はこれが少し難しいことだということを知っていますが、私はオープンソースプロジェクトとしての Interbase を決して開発することはないでしょう 。私は政治家ではなく技術者です。私は、自分が急進的な新しいデータベースアーキテクチャに関してコンセンサスを作らなかったということを強く確信しています。私は革新を信じ、そして革新は、一貫したビジョンを必要としています。私はオープンソースの中でそうしたビジョンを見たことがありません。しかし、私はこれだけは知っています。Firebird がクラシックとスーパー‐サーバのコードベースを分離しない限り、どちらも、どこへ行くことも出来ないでしょう。それぞれが、他方の開発を抑制してしまっているからです。

Marina Novikova: あなたは、そうした多くの発明に満足していますか? Netfrastructure ではあなたの夢やアイデアを実現したわけですが、Interbaseと Firebird の開発をどのように評価していますか? あなたがFirebirdの発展を見ることは興味深いことで、喜ばしいと思っていらっしゃるのでしょうか?例えば、アーキテクチャの変更のような重要な改善、メインバグの修正、 DSQL の拡張、パフォーマンスの改善等々ですが。

Jim Starkey: 私は、一群の発明をしてきましたが、それら全てを愛しています。VAX Datatrieve は、 VAX を離れて存続し、オラクルの爪から逃れ、 DECを離れて存続し、コンパックを離れて存続し、そしてHPの製品としてまだ生き続けています。私はVAX Datatrieveを気に入っています。それから、私にはとんとわかりませんが、どういうわけか PDP-11 のDatatrieve は、同じくまだ利用可能です。私はそのこと自体にとても驚いています。開発者が Firebird の様々な部分の周辺に腕を伸ばすのを見ることは、興味深いことですが、私は、誰かがFirebirdと共に走り出すのを待ち続けています。おそらく、誰かがそうするでしょうね。私が Firebird に活発にかかわっていたなら、自分がしただろうと考えているのは以下のような事です :1. シャム双生児となっているクラシックとスーパーサーバを分割すること、それによってそれぞれが生きながらえることが出来る。2. SQL をふさわしいエンジンに移動する間、レガシー・インタフェースとして BLR を維持すること。DSQL を捨てること。3. 2 レベルのネーム・スペースを導入すること4. スーパーサーバに対する知的に防御できる、有効なセキュリティを実装すること5. トリガ、ストアド・プロシージャ及びUDF のために Java バーチャル Machine を埋め込むこと6. スーパー‐サーバのためにシリアル・ライト・ログを実装すること ;書込みに注意を払わなくてもいいように

Marina Novikova: あなたは、オリジナルの Interbase アーキテクチャにおけるいくつかのあなたのアイデアが次の開発者によって不正確に理解され、もしくは誤って実現されていると思いますか?

Jim Starkey: どちらもないですね。アイデアもアーキテクチャも、最初から十年間にわたって利用可能なプラットフォームに完璧に適合していました。私が別のデータベースシステムを作らなければならなかったのでしたら、アポロ DN320 のために、マルチ・レベルなネーム・スペースを持つネイティブなSQLを作ったでしょうね、でも、他のものほとんど同じになったでしょう。 私が現代のマシン上ですべてをやり直さなければならないのであれば、再びすべての点で Netfrastructure を書くことになるでしょうね。しかしその時は、システムテーブルをケース・インセンシティブにするでしょう。それから、インデックスキーに関するアンの言うことを聞かないといけないですね。

Marina Novikova: Interbase/Firebird/Yaffilのコミュニティ全体に対して、望んでいることがあればお聞かせ下さい。

Jim Starkey: 過去から学びなさい。将来のために設計しなさい。もはや1984 年ではないのです。それにふさわしい扱いをしましょう。


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/site_rsrc/images/92/interview_jim_starkey.html

設立総会のご案内

Firebird日本ユーザー会

~ 設立総会のご案内 ~

 

  昨年5月にユーザー会設立のために準備会を立ち上げて、ようやく1年が経過しようとしております。この間、議論を重ねてまいりましたが、この度以下の通りFirebird日本ユーザー会の設立総会を行うことを決定いたしましたのでご報告致します。

日時:2004年4月3日(土) 午後2時~
場所:タイムインターメディア社会議室
地図:http://www.timedia.co.jp/company/map

※当日、総会後に懇親会を予定しております。(詳細未定)

 Firebird日本ユーザー会を設立する目的は、国内における情報技術産業に関わる人々のみならず広く一般市民に対して、オープンソースのリレーショナルデータベース・Firebirdの普及と発展に関する事業を行い、低コストで高機能なリレーショナルデータベースを提供することを以て情報化社会の発展に寄与することにあります。

 また、この目的を達成するために、以下の活動を行います。

  1. Firebird及びミドルウェア、関連ツールなどの研究開発及び普及促進
  2. Firebirdに関する情報の公開、海外情報の紹介
  3. 会員相互および外部との技術的・人間的交流

 さらに、上記の目的を達成するために、以下の事業を行います。

  1. Firebird関連技術に関する調査研究、情報収集、配布
  2. Firebirdの研究会、講習会、インターネットホームページの開設
  3. その他本会の目的を達成するために必要な事業を行います。

 ユーザー会への参加は、会費を頂く個人・法人の正会員と無料の準会員の二種類となります。会費は個人正会員が年間三千円、法人正会員が年間三万円とさせていただく予定です。

 上記の目的等につきましては、以下に規約案を掲載いたしますが、設立総会にて最終的に決定されるものですので、現時点での決定事項ではございません。

  Firebird日本ユーザー会スタートアップグループは、日本においてFirebirdのさらなる普及を目指すため、Firebirdに関心を持つ、個人・非営利組織・企業の皆様方のご参加とご協力を頂きたいと思います。

 ・Firebird日本ユーザー会 規約案 ( PDF版 )

 

2004年3月1日
Firebird日本ユーザー会
スタートアップグループ 代表 林 務

 


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=71

Firebirdの特徴 (Factsheet)

Firebirdプロジェクトのホームページはこちらです

 Firebird 1.5は、フル機能を備えたSQLデータベースエンジンです。軽量で、設定や管理に最小限の労力しか必要としないにもかかわらず、大変強力です。シングルユーザーによる単一のデータベース利用から全社規模のエンタープライズ向けシステムまで、容易に拡張可能です。1つのFirebirdサーバは、それぞれが複数のクライアント接続を持っているような、複数の独立したデータベースを扱うことができます。なによりもFirebirdは真のオープンソース製品であり、商業使用も含め一切のライセンス使用料は必要ありません。

Firebirdの特徴

  • A.C.I.D. :  FirebirdはRDBMSに必須とされるAtomicity(原子性)、Consistency(一貫性)、 Isolation(分離性) 、Durability(耐久性) を提供します。

  • MGA: Firebirdの独特の特徴である「マルチ・ジェネレーション・アーキテクチャー」によって、どのような場合でもデーターベース・エンジンは同じレコードの複数のバージョンを扱うことが出来るので、全てのトランザクションは他の並行するトランザクションの影響を受けずに自身のバージョンを持つことが出来ます。(読込は書き込みをブロックしませんし、書き込みは読込をブロックしません) FirebirdはMGAによって、OLAP(訳注:オンライン分析処理)と同程度にOLTP(訳注:オンライン・トランザクション処理)にも向いています。 

  • ストアドプロシージャ: FirebirdのPSQL(手続き型SQL)を使用すると、容易に強力なストアド・プロシジャーを作成することができます。ストアドプロシージャは完全にサーバーサイドでデータの処理を行います。特別なフレーバーとして、サーバー上で一行毎にデータ計算可能な、クライアントサイドから「仮想テーブル」のように見え、取り扱い可能な「セレクタブル・ストアド・プロシジャー」があります。(帳票作成時に特に役立ちます)
  • イベント: ストアド・プロシジャーとトリガは、「稼動中のデータベース」をTCP/IPポート上のクライアントからモニタ可能なイベントを生成できます。

  • ジェネレータ: ジェネレータ(別名:シーケンス)のコンセプトは、オート・インクリメントを簡単に実装できるようにすることで、それ以上のものではありません。ジェネレータは各トランザクションから独立した、持続性の値を持つのInt64型のカウンタです。もちろん、他の目的にも使用することが出来ます。

  • 読込専用データベース: 例えばデータベースエンジンのエンベッド版と共にCD-ROMでデータベースを配布するような場合には、このフィーチャーは配布を容易にする手助けとなります。
  • フル・トランザクション制御: 単一のクライアントアプリケーションは、複数の並行するトランザクションを利用することが出来ます。クライアントは各種の分離レベルをトランザクション毎に完全に制御することが出来ます。2相コミット・プロトコルによって、複数のデータベース間での一貫性を保証することが出来ます。また、複数のトランザクション・セーブ・ポイントや、楽観的ロックもサポートしています。

  • オンラインバックアップ: バックアップ時にデータベースをシャットダウンする必要はありません。バックアップのプロセスは、バックアップを開始した瞬間のデータベースの状態をスナップショットとするので、ユーザーはバックアップ中も作業を続行することが出来ます。そのため、24時間連続稼働が可能となっています。

  • トリガー: それぞれのテーブルは多くの行レベルのトリガーを持っています、それはINSERT・UPDATE・DELETEの前後に起動されます。トリガーの中では、PSQLの力を余すところなく使うことが出来るだけでなく、デフォルト値、データの一貫性、例外処理等々を利用することが出来ます。また、Firebird 1.5では新機能として「ユニバーサル・トリガー」が実装されました。この機能によって、一つのトリガーで、あるテーブルに対するInsert・Update・Delete一度に設定することが可能となりました。

  • 外部関数: ユーザー定義関数ライブラリ(UDF)はC、C++、Delphi等の言語によって書かれ、DLLやSO形式でエンジンに簡単にプラグインすることができます。UDFによって、Firebirdサーバーの「内部」関数を拡張することが可能です。

  • カスケード可能な参照整合性宣言: テーブル間の親子関係をn-level の深さで一貫性を保ち検証することができます。

  • 文字セット: FirebirdはUNICODEを含む多くの文字セットと多様なコレーションを実装します。

標準SQL規約への適合

FirebirdはSQL92のEntry Level 1 に完全に準拠しています。また、SQL-99規格のほとんどを実装しています。さらに、より実用的な機能を追加しています。
Firebirdは、DML/DDL文、FULL/LEFT/RIGHT[OUTER] JOIN 文法、UNION、DISTINCT句、サブクエリ(IN、EXSITS)、内部関数(AVG、SUM、MIN、MAX、COALESCE、CASE)、整合性制約(PRIMARY KEY、UNIQUE、FOREIGN KEY)、当然ですがSQLデータ型一般、等を利用出来ます

Firebird はドメイン、フィールドレベルのチェック制約、View、例外、SQLロール、きめ細かな権限管理についても実装しています。詳細については、リリースノートとFirebird Refrence Guide をご覧下さい。

ハードウェア要求

Fireibrd は殆どどのようなハードウェア上でも動作します。とても非力なハードウェアでも役に立ちます、特に、Linux上で力を発揮するでしょう。どのようなRDBMSも、パフォーマンスに影響を及ぼすお約束の問題があります。物理メモリ(スタートには16MB程度で間に合うでしょう)、ストレージ・サブシステムの速度(RAIDシステムのような)等々。もちろん、お勧めのハードウェア構成は読者がデータベースに望んでいることによって異なります。例えばどのくらいの大きさになりますか?どの程度の同時接続ユーザーが見込まれますか?あなたは最小限の設定でスタート出来ます。そして、必要があれば後でサーバーを強化すれば良いのです。

 

利用可能なOSプラットフォーム

 Firebirdにもっとも多く使用されるOSはLinuxとWindows(ターミナルサーバーとCitrixメインフレームを含みます)です。Firebirdは、他にMacOS XやSolaris、それにHP-UXのプラットフォームをサポートしています。
 苦痛を伴うことなく、あるプラットフォームから他のプラットフォームにデータベースを移転することが可能です。単にトランスポート可能な形式でバックアップをとり、移転先のプラットフォームで復元するだけです。

接続性

Firebirdは、以下を含む多くの接続方法をサポートします:
C/C++およびDelphiのためのネイティブなコンポーネントパッケージ、ODBC、JDBC(JayBird)、PHPドライバ、OLEDBドライバ、dbExpress、.NETデータプロバイダ。そして最終的にはfbclient.dll(.so)を使用することによってAPIの直接呼び出しを行うことが出来ます。

サイズ限界 

Firebirdは実際に巨大なデータベースを扱えます。データベースは複数のファイルによって構築することが出来、それぞれのファイルサイズはOSが提供するファイルサイズの限界まで拡張可能です。単一のデータベースファイルのサイズに関する理論的な限界は64テラバイトですが、殆どの場合はOSやファイルシステム、そしてHDDの残り容量により制限されます。

Server engine versions

データベース・エンジンには3種類のバージョンがあります。それぞれに互換性があり、それぞれに異なった特徴をもっています。

  • クラシック・サーバー(1クライアント接続毎に1プロセス型。SMP及びハイパー・スレッディング対応)
  • スーパー・サーバー(全接続は1モジュールでハンドリングされる。現状ではSMP及びハイパースレッディング非対応)
  • エンベデッド・サーバー(単一のDLL又はSOファイルにエンジンの全機能を内蔵。シングル・ユーザー、シングル・データベース使用向け)

    上記の全てのバージョンは同一のデータベース・ファイル形式を使用するので、いつでも好きな時に相互に切り替える事が可能です。

ライセンス 

Firebirdは、Mozilla Public License1.1と同じ条件の、IPL(InterBase Public License)でライセンスされます。Firebirdの使用は完全にフリーであり、顧客に対しても完全にフリーで配布することができます。
 あなたが自分のプロダクトをどのようにライセンスするかに関わらず、あなたのプロダクトのためのソース・コードを公開する必要はありません。けれども、データベースエンジンそのものを修正する場合には、修正したソース・コードに対して誰でもアクセス出来るようにしなければなりません。

ツール

多くのツールが Firebird で役に立ちます。いくつかはフリーで、いくつかは商用のものです。管理ツール、開発者向けのツール、UDFライブラリ、接続ツール、その他にもたくさんあります(下記のリンク・セクションを参照)。

サポートと資料

Firebirdプロジェクトのホーム(www.firebirdsql.org)では、プロジェクトに関するたくさんの有用なリンクが掲載されています。 

 IBPhoenix社では長年の経験を積んだ専門家による多様なサポート契約を提示し、かれらのウェブサイトにはハウトゥや高度に技術的なドキュメンテーションなどの、より多くの技術情報があります。

コミュニティ

常に成長を続けるFirebirdユーザーのコミュニティと、いくつものニュースグループが素早いオンラインサポートを行います。それらのファイアバードに関するメーリングリストはプロジェクトのウェブサイトに全てリストされています(このページの下部にリンクがあります)。

歴史

Firebirdは、2000年8月にボーランドがオープン・ソースとしてリリースしたInterBase 6.0のソース・コードに基づいており、InterBaseは今を遡ること20年前(1984年)からリレーショナル・データベース製品としての利用されてきた実績を持ちます。


Firebirdリンク

ダウンロード: Firebirdパッケージはこちらをクリックして見つけることが出来ます

ドキュメント: 詳細はこちらのリンクをご覧下さい

ライセンス: The complete IPL

ツールと管理プログラム: こちらのリンクをご覧下さい

コミュニティ: ニュースグループとメーリングリストはこちらに一覧があります


ファイアバード・プロジェクトの原動力のひとつがFirebirdSQL財団です。
プロジェクトを発展させ、継続することを支援するために、資金を集め、開発者に対して補助金を交付することによって、ファイアバードの開発を支援する個人やスポンサー企業の組織です。財団はプロジェクトの資金調達のためにスポンサー企業を歓迎するのと同じように、企業や個人の新メンバーを歓迎します。FirebirdSQL財団については以下のURLをご覧下さい。
http://www.firebirdsql.org/index.php?op=ffoundation⊂=jp&id=main_jp

(c) 2003 by The Firebird Project. All names of products and companies mentioned herein are trademarks of their respective owners.
Firebird プロジェクト・ホームへ戻る

当時の外部画像の一部は取得できないため、表示していません。


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=70

動作検証資料

 Firebird動作検証資料

Win系

1.5.1

1.5.0

1.0.3

ミドルウェア

Win 2k Pro

 ○

○

○ 

・Delphi5Pro UP2 + IBX(Delphi5・6付属品)
・Jsva/jsp+JDBC

Win 2k SV

 

○

○

・Jsva/jsp+JDBC

Win XP Pro

 ○

○

 ○ 

・Delphi6Pro UP2 + IBX(Delphi6付属品)
・Jsva/jsp+JDBC
・Firebird .NET Provider1.5.2 for .NET Framework1.1 + VB.NET2003
・PHP4/ODBC

Win XP HOME

     ?   ?  

Win 98

    ○   ? ・Firebird .NET Provider1.5.2 for .NET  Framework1.1
・VB.NET2003

Win Me

     ?   ?  
RedHat系

1.5.1

1.5.0

1.0.3

ミドルウェア

Redhat7.x以前  

△
*1

○

Redhat8.0  

○

○ 

・D6/IBX
・PHP4
Redhat9.0  

○

○ 

・D6/IBX
・PHP4
FedoraCore1  

○

 ○

・D6/IBX
・PHP4
・PHP5
Redhat9.1

○

     
 
RedHat
Enterprise系

1.5.1

1.5.0

1.0.3

ミドルウェア

AS2.1  

△
*1

○

 
AS3.0  

○

   
ES2.1  

△
*1

○

 
ES3.0  

○

   
WS2.1  

△
*1

○

 
WS3.0  

○

   
SUSE

○

     
 

○

     
 
Knoppix系

1.5.1

1.5.0

1.0.3

ミドルウェア

中神仕様  

○

   
 
Debian 系

1.5.1

1.5.0

1.0.3

ミドルウェア

Debian GNU/Linux 3.0  ○

?

  ・PHP4/ODBC
Free-BSD系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
HPUX系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
Mac-OS
Darwin系

1.5.1

1.5.0

1.0.3

ミドルウェア

MacOS X 10.3.5 Panther  ○
(※2)
– – ・IBConsole
・IBOConsole
・PHP5 – ibase関数群
・ODBC
・C API
net-provider系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
sinixz系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
 
solaris-sparc系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
solaris-x86系

1.5.1

1.5.0

1.0.3

ミドルウェア

         
   募 集
 当ページでは、動作実績情報を募集しております。「動作確認及び動作しませんでした」の情報があればFirebird日本ユーザー会のメーリングリストか当ページの管理者までメールしてください。
*1 GCCをgilbc 2.3.2-4以降の構成に入れ替えると、動作する所までは確認できています。
※RedHat7.3での構築方法についてはこちらのドキュメントが参考になります。
※2 但し、ClassicServer版のみ。ソースからビルドしてもSuperServerでは動作しない。動作しない状況はNPTL関連のものに酷似しているので、まさにそうだろう。PHPと一緒に使う方法などはこちらを参考に。
注)本資料はFirebirdユーザー会メーリングリストでの情報を基に作成した資料であり、動作保証するものではありません。
  また、各ミドルウェア固有の問題に関する検証資料ではありません。

旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=68

ダウンロード

Firebirdのインストールなどに必要なリソースのダウンロードのためのリンク集です。
最新の情報は出来る限りソースフォージのFirebirdプロジェクトで確認して下さい。

管理ツール & ドライバ

FlameRobin 0.8.3









FlameRobin 0.8.3日本語インストーラ(Windows32ビット版)
FlameRobin 公式ページ

Firebird .NET Data Provider

Version 2.1.0 for .NET 2.0

Version 2.5.0 Alpha 2 for .NET 3.5/2.0

JayBird
JDBC ドライバ

Jaybird 2.1.6 (Critical)

Patch release, 19 July 2008. Details HERE.


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=67

PHP4 RPM for Redhat Linux9

 

■Redhat Linux9 用 PHP4.2.2 RPM — InterBase / Firebird Support

 Redhat Linux9 付属のRPM(php-4.2.2-17.i386.rpm)では、interbase関数のサポートがされていないため、SPECファイルを編集してRPMを作成してみました。

 php-4.2.2-17.1.i386.rpm
 php-interbase-4.2.2-17.1.i386.rpm
 php-manual-4.2.2-17.1.i386.rpm

 インストール後に、/etc/php.iniを編集して、以下の行を追加して下さい。

; Dynamic Extensions ;
extension=interbase.so

 Apaceh2.0対応なので、–with-DEAPIオプションがいるのかいらないのか不明ですが、合わせて追加してあります。

 php.17.1-mod_interbase.spec

 ※RPM4は今回初めてさわったのですが、rpm -ba とかではなく、rpmbuild -ba とコマンドが分離されていたので、少々とまどいました。

by T.Hayashi (2004/2/1)

■マルチバイト関係Configure追加

 前回のビルドでは、mbstring関係が抜けていました。具体的には以下の3つのオプションが有効になっていませんでした。

‘–enable-mbstring’ ‘–enable-mbstr-enc-trans’ ‘–enable-mbregex’

 上記のオプションを有効にしたRPMは以下になります。

 php-4.2.2-17.2.i386.rpm
 php-interbase-4.2.2-17.2.i386.rpm

 specファイルはこちらです。

 php.17.2-mod_interbase.spec

by T.Hayashi (2004/2/7)

 


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=66

BLOBのインサートテスト

 

■BLOBのインサートテスト (2004/1/17 林 務)

 firebird-jp-generalに投稿した、BLOBのインサートに関するテストプログラムとレポートです。

BLOB_INSERT_TEST_0-2.LZH (IBX版)
BLOB_INSERT_TEST_BDE_0-2.LZH (BDE版。BDEがインストールされていないと実行できません。)
BLOB_INSERT_RSC.LZH (使用した画像リソース。実行には不要です。)
※変更点(ver.0.2)
・コネクションタイムを統計から排除。
・iniファイルでサーバを設定しないとエラーログを吐く不具合修正。

・使用方法
①CREATE.SQLのSQL文をISQL等で実行して下さい。
 データベースのパスは必要に応じて変更して下さい。

②DM_BLob.iniを編集して下さい。

[DATABASE]
SERVER=Localhost
DBFILE=E:DBBLOB1.FDB
UserID=SYSDBA
Passwd=masterkey

説明の必要はないかと思いますが、先ほどのファイル配置に合わせて変更し、またIDとパスワードを適宜設定して下さい。

③BlobIns.exeを実行して下さい。
④スピンエディットでインサート回数を設定し、Startボタンを押すと開始します。
⑤途中でStopボタンを押せば中断することができます。

■テスト(1) — Delphi6 + IBX6.08

サーバはローカルのFirebird 1.0.3へLocalhostでローカル接続しました。

マシンスペックは、Pentium4 2.4G + Mem 1GB + Diskは新品のSeagate 160GBです。

10万レコードのインサートを行った結果が以下のようになりました。

※下の最大値・平均値は、開始時のコネクションタイムが入ってしまっていました。ただいま追試中です。
— 100000回 Insert の平均 :  65.19925ミリ秒
— 100000回 Insert の最大 :  3134ミリ秒
— 100000回 Insert の最小 :  20ミリ秒

— 100000回 Insert の平均 :  21.23ミリ秒
— 100000回 Insert の最大 :  70ミリ秒
— 100000回 Insert の最小 :  10ミリ秒

ファイルのサイズは以下のようになりました。

2004/01/17  14:21        2,048,008,192 BLOB1.FDB
2004/01/17  14:21        2,048,008,192 BLOB2.FDB
2004/01/17  14:21        2,048,008,192 BLOB3.FDB
2004/01/17  14:21        2,048,008,192 BLOB4.FDB
2004/01/17  14:21        1,231,175,680 BLOB5.FDB

■テスト(1)-2 — Delphi6 + IBX6.08 10万行インサート後の追加

テスト結果(1)の10万行インサート後に、再度コネクトし100行のインサートを行った。

— 100回 Insert の平均 :  30.05ミリ秒
— 100回 Insert の最大 :  761ミリ秒
— 100回 Insert の最小 :  10ミリ秒

■テスト(1)-3 — Delphi6 + IBX6.08 with Firebird 1.5 RC8

テスト(1)-1と同一の内容を、Firebird 1.5 RC8で行った結果。
※と思ったら、10,000回になってました。要追試。

— 10000回 Insert の平均 :  20.7689ミリ秒
— 10000回 Insert の最大 :  41ミリ秒
— 10000回 Insert の最小 :  10ミリ秒

— 100000回 Insert の平均 :  10.75ミリ秒
— 100000回 Insert の最大 :  261ミリ秒
— 100000回 Insert の最小 :  10ミリ秒

■テスト(1)-4 — Delphi6 + IBX6.08 with Firebird 1.5 RC8 1万行インサート後の追加

テスト(1)-2と同一の内容を、Firebird 1.5 RC8で行った結果。
※これも1万行インサート後なので、要追試。

— 100回 Insert の平均 :  23.53ミリ秒
— 100回 Insert の最大 :  330ミリ秒
— 100回 Insert の最小 :  10ミリ秒

— 100回 Insert の平均 :  16.47ミリ秒
— 100回 Insert の最大 :  651ミリ秒
— 100回 Insert の最小 :  10ミリ秒

■テスト(2) — Delphi6 + BDE

BDE版の結果です。接続方法をBDEに変更した他、BDEでのLocalhost指定がエラーとなるため、ローカル接続で計測しました。

— 100000回 Insert の平均 :  33.99ミリ秒
— 100000回 Insert の最大 :  81ミリ秒
— 100000回 Insert の最小 :  20ミリ秒

■テスト(2)-2 — Delphi6 + BDE 10万行インサート後の追加

テスト結果(2)の10万行インサート後に、再度コネクトし100行のインサートを行った。

— 100回 Insert の平均 :  2006.08ミリ秒
— 100回 Insert の最大 :  198465ミリ秒
— 100回 Insert の最小 :  10ミリ秒

ログは以下のようになっています。

0回目Insert時間 —  198465ミリ秒
1回目Insert時間 —  10ミリ秒
2回目Insert時間 —  10ミリ秒
・・・以下大体同じ

■テスト(2)-3 — Delphi6 + BDE with Firebird 1.5 RC8

テスト(2)-1と同一の内容を、Firebird 1.5 RC8で行った結果。

— 100000回 Insert の平均 :  22.01ミリ秒
— 100000回 Insert の最大 :  280ミリ秒
— 100000回 Insert の最小 :  10ミリ秒

■テスト(2)-4 — Delphi6 + BDE with Firebird 1.5 RC8 10万行インサート後の追加

テスト(2)-2と同一の内容を、Firebird 1.5 RC8で行った結果。

— 100回 Insert の平均 :  2023.61ミリ秒
— 100回 Insert の最大 :  200238ミリ秒
— 100回 Insert の最小 :  10ミリ秒

■考察

 テスト(1)とテスト(2)で有意に差があるのが、10万件インサート後の再インサート時の問題です。BDEでは、0からのインサートではIBXより遅いものの平均してそれなりの速度でインサートに成功しています。しかし、いったん切断した後で再接続しインサートしようとした場合、1件目のインサートで極端に遅くなります。IBXも確かに再接続後の1件目が少し遅いのですが、問題とならない範囲です。
 このことから、大量のBLOBインサートを伴う、大規模データベースでは、BDEよりもIBXを使うべきであるという結論が導き出されるかと思います。(20041/17)


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=64

Interview with Paul Beach on InterBase World

Interview with Paul Beach
2003 / 1 / 31
2004 / 1 / 1 翻訳版 DelphiマガジンVol.32 掲載
Written by Marina Novikova
on InterBase World (URL http://www.interbase-world.com/)
翻訳:林 務(株式会社アペックス)

 本インタビューは、InterBase World のWebサイトでMarina Novikova氏によって公開されたものを、Marina氏とPaul氏の許可によって翻訳したものです。
 Paul Beach氏はボーランドでInterBase部門のマネージャーをやっておられました。2000年にボーランドがInterBaseをオープンソースとする直前に、経営陣と対立して辞職し、その後Ann Harrison氏とIBPhoenix社を立ち上げFirebirdプロジェクトを支援しています。
 Marina Novikova氏はロシアの企業で英文翻訳とテクニカル・ライターをするかたわら、InterBase Worldの管理者をなさっています。Marina氏はInterBase Worldで、毎週のようにインタビューやレビューを更新されているのですが、このインタビューは、技術的なことやビジネスに関することだけでなく、各ゲストの人となりがよく現れていて、私はいつも楽しみにしています。


Marina Novikova: まず、ご自身のことをお話下さい。趣味は何ですか、音楽はどんなものをお聞きになりますか、お気に入りの本(あるいは作家)はどんなものですか?

Paul Beach: 私が仕事以外で時間を一番割いているのは多分ガーデニングでしょうね。UKでは「アロットメント」と呼ばれているちょっとした家庭菜園をみんなが持っていて、19世紀に遡るんだけど、政府が家庭菜園割当法を制定したので、十分な大きさの庭を持っていなかった地方の人々に土地を割り当てて( そのために必要なだけの土地があったばあいだけどね ) 野菜を育てることを奨励したんですよ。私と妻は、現在 2 つの家庭菜園を運営していてよく育っています、自分たちで食べる分の全てをまかなうほどではないですけどね。 アスパラガス から ズッキーニまで、それからストロベリーやラズベリーなどの柔らかい果物なんかを作っています 。一般的に冬の間はやることがあまりないんだけど、それは春になって成長の季節がくるとめちゃめちゃ忙しくなるからなのかもしれないね。この話が退屈だったら、私は速い車が好きだって事を話そうかな。最近、TVR Chimarea 5.0のオーナーになったんだよね (http:/www.tvr-eng.co.uk を見てね。ただし、最近サイトが再構築されて、とーーーっても遅くなってしまったんだけど)
 音楽に関しては、私はパンク世代なんで、私の 10 代の頃はパンクを聞いて、それからバンドを見に行って過ごしたんだ、クラッシュ 、ジャム、 スティッフ・リトル・フィンガーズ メンバーズ、 ジョイ・ディビジョン、 ラモーンズ等々、今でも聞いてるよ。それからもっと最近の音楽に関しては、レディオヘッド、プラシーボなんかのインディーズ・バンドを聞いてるよ。
 本に関しては、私の学位は英文学なので、とってもたくさんの本を何年もの間に読んだよ、しかし、お気に入りは、パトリック・オブライエン 、フランク・ハーバート、 ウィルフレッド・オーエン、 バルザック、 ウィリアム・ゴールディング、アイザック・アシモフ、シェークスピア、ジョン・ドン、及び、トーマス・ハーディなんかだね ( 別になんでもありってわけじゃないんだけどね)。

Marina Novikova: ビールは飲みますか?もしそうなら、どんなのがお好きですか?

Paul Beach: 私は、元々は英国北部の出身なのですが、今は南部に住んでいます。ご存じない方も多いと思いますが、南部で出されるビールは北部とは全然違うんですよ (ちょっとした南北分断だね) 。私はもう何年も南部で生活しているますが、まだ南部のビールに慣れないんで、そのため私は主に白ワイン ( new world sauvignon blanc ) で押し通しています。にもかかわらず、両親に会うために北部に戻ったりするときは、地元のパブにふらりと立ち寄るのが大好きなんです。私は、英国のビターの全てを原料として、TetleyビールがLeedsで醸造された時のことに想いを至らせたりするんです。それからTheakstonビールもお気に入りなんですよ。

Marina Novikova: 今までもらった中で一番おかしかった(あるいは変な)プレゼントは何ですか?

Paul Beach: 私の妻によって地方の病院から救助された 2 匹の白黒の子猫。そいつらは元々野良猫だったので、とっても危険だった。爪と牙がすごくてね。そいつらは 6 ヶ月もかからずにソファーを木片に戻してしまったんだ、しかし、それ以来ずっと私たちは家で猫を飼っているんですよ。

Marina Novikova: 人生の中で、もっともエキサイティングだった日とか、最もすばらしい瞬間とかを覚えてらっしゃいますか?

Paul Beach: おそらく、私が大学でガールフレンドとよりを戻したときだろうね、我々は6 ヶ月位の間別れていたんだけど、私は彼女が私とのことを考え直してくれるといいなあと思っていた。彼女は考え直してくれて、彼女は今私の妻になっていて、そして、私たちはもう 21 年間以上いっしょにいるんだ。

Marina Novikova: どんなことが嫌いですか?人々がどんなことをするとイライラしますか?

Paul Beach: アイロンかけ ? こう言えば十分。感謝されない仕事。それから、他の人々については ? 何かをすると約束しながら、結局それをやらない人 。

Marina Novikova: 自由に使える時間がいくらかでもあったら、どんな風に使いたいですか?

Paul Beach: 家庭菜園だね。

Marina Novikova: 大きな夢というのは何かありますか?

Paul Beach: 激しい無意味な競争から抜け出すために十分なだけ稼いで、そして、どこか静かなところでちょっとした土地と小自作農地 ( 小さな農場 ) を買いたいですね。

Marina Novikova: Ann Harrisonは比較文学の学士号を持っていると言っていましたが、あなたの学歴をお聞きしてもいいですか?また、どうしてハイテク分野で仕事をしようと思ったのですか?

Paul Beach: 私は、 ノッテインガム大学で英文学の学士号を取りました。私がハイテクに関わるようになったのは本当に偶然で、私が大学を卒業したとき、私は、ジャーナリストになるつもりだったんですよ。しかし、80 年代初期にこの仕事はなかなか見つからなかった。それで私の友人が「システム アシスタント」の仕事を持ってきたんだ、その会社は新しい会計システムを製作していました( 「システムアシスタント」は雑用係ってところだね)。 私は、結局UKで初めての DEC VAX 11/750 のうちの一つで仕事をすることになって、DEC のプロフェッショナルになったんだ。私はそれがとても楽しかったので、夢中になってしまって、後ろを振り返ったりはしなかったね。

Marina Novikova: いつから、また、どうして、あなたは、 Borland で働き始めた (あるいは Borland を辞める前に、元々の ISC における仕事を始めた)のですか?

Paul Beach: 私は元々のISCで働いたことは無いですが、Cgnos社によってInterBaseに関わるようになったんです。Cognosは何年間にもわたって製品の代理店をしていました。Cognos社で私はリレーショナル・データベーステクノロジーの上級コンサルタントをしていました。
 BorlandはCognos社から私を雇い入れたんだけど、ちょうどヨーロッパのサポート部隊を組織するためにアシュトン・テイト社を獲得した直後だったんだな。その部隊はヨーロッパのInterBaseの顧客の面倒をみることになっていたんです。1995年の初頭に彼らは私を窓際に追いやって、その6ヶ月後に雇い直したんですよ。私は2000年1月に辞職するまでボーランドにとどまって、様々な管理的な地位を経験しましたんですが、私がボーランドにいた間、上位の経営陣が何をしているのか全くわからないことが何度もありました。

Marina Novikova: その時には、どんな職務があなたに与えられたのですか?

Paul Beach: ふー ? Borlandで私は多くのことをしましたが、ヨーロッパでのInterBase向けのサポートの面倒を見ることから始まって、それから世界規模でのInterBaseのビジネスの再構築をやり、製品マネジメントとマーケティングをやって、立ち上がったばかりのInterBase部門を運営して・・・。私はボーランドでの仕事は大体楽しかったと思っています、とてもダイナミックなところで時を過ごしたと思っているし、いつもテクノロジーの刃の上に立っていたわけだからね。それに、私はとても多くのことを学んだんです、特にボーランドで働いている少数だけどとてもクレバーな人々から、また間接的にボーランドに関わっている人々からね。

Marina Novikova: 自分の人生を3語で表すとしたらどうします?

Paul Beach: 分裂気質(かたぎ)。

Marina Novikova: これまでに百万遍も聞かれたことだと思うんですが、お聞きします、どうしてボーランドを辞めたのですか?チームを離れたとき、ボーランドがソースコードを公開すると思っていましたか?

Paul Beach: InterBaseの歴史の中で、Del Yokamが担当していた期間があり、InterBase はボーランドとは別の子会社として一度存在したことがあった。私たちは多くのファンをその時も持っていたし、とても一生懸命仕事をしたので、私たちは少なくとも自分たちの運命について責任を取らなくちゃならなかったんです。Yokmanが私たちを飲み込むことを決定したので、多くの仲間が辞めることに決めたんだけれど、まあ全員というわけではなかった。幾人かの居残った人間が、どうにか残っているチームをまとめて製品を前へ進めようとしていたんだ。
 1999年初頭のある時点で、新しいInterBase部門のゼネラルマネージャになることを求められたんだ、ボーランドはDale Fullerの下でなんとか落ち着こうとしていたときだった。しかし2000年の1月になって、私はとても難しいポジションに立たされたんだ。それはDale Fullerにとても出来そうにない事をやるよう求められたからだったんだが、彼はまた私たちとの間で結ばれた約束を果たさなかったのさ。私は(ボーランドが彼らを放り出したにもかかわらず)InterBaseを支持しているInterBase部門の社員に対して、自分が辞職するその時までは責任があると感じていたのだけど、それからほとんどのInterBase経営チームの他のメンバーが辞職して、それからサポートスタッフが辞職して、それからほとんどの技術者が辞職して・・・。これについては確かに同情すべき点があったと思うよ。
 私たちのほとんどがいなくなってしまう前に、幾人かがInterBaseをオープンソースにしてはどうかという提案をしていたんだ。Red HatがちょうどIPOを成し遂げたときで、Daleはその考えを気に入って、もっと詳細に調査することを決定した。この調査の一部として、私はDaleにAnnと一緒にInterBaseをオープンソース製品として扱う新会社の設立を進めることを聞かされたんだ。

Marina Novikova: InterBaseロードマップを見ていると(http://www.cvalde.com/IbRoadmap.htm) あなたはAnn Harrisonと一緒にIBPhoenixの基礎を構築しましたね。現在の職責はどうなっていますか?何か他のことをしたいと思っていますか?

Paul Beach: Annと私は今でもIBPhoenixを運営しています、そして会社はゆっくりとですが成長し続けています、私たちはいまこの数年間の間出来なかったことを出来るようになっています、特にFirebirdを育てるためのサポートと支援に関してですが。私はまたJim StarkeyとNetfrastructureの仕事をこつこつとやっています、それから製品の市場を開拓したりとかいろいろと、ね。

Marina Novikova: 3語で今の生活を表すとしたらどうなりますか?

Paul Beach: 熱狂的。一言で済むときに3語をどうやって使えばいいか勉強するように言ってくれてもいいですよ。:-)

Marina Novikova: InterBase は、ポピュラーな RDBMS であり、そして、 ボーランドは、世界中で何百万ものコピーを販売しています。なぜ、いまだに InterBase の英語の本がないのでしょうか ?

Paul Beach: 私が学者ぶっていうことじゃないんですが、ボーランドは実際には数百万も売っていません、おそらく、 1 年に数十万で決して数百万にはならないですね。
 種まき戦略として、多数の InterBase サーバが開発ツールによってタダで配られたことを思い起こして下さい。これは、おそらくここ数年の間 InterBase に起こったことでは一番いいことだったんじゃないかな。たとえ、それが偶然に起こったことだとしても・・・。それから、こういうことはよくあることなんだけど、今日の販売数はとっても疑わしいと思ってるね。特に、ユーザーと開発者には今では選択肢があるのだから。
 私はどうして英語の本がないかを知らないんだけど、おそらく Bill Karwin と私が本を書く余裕を見つけることが出来なかったからじゃないのかな。

Marina Novikova: InterBase7はMSSQLの価格と比較してみると、ちょっと高いように思います。TPCテストによればInterBaseはMSSQLより性能で劣っているんですが、このIBの価格体系についてお話ししてもらうことは出来ますか?IBの独特の適用範囲や、マネージャーの思考の停滞、あるいはマーケティングのトリックである「高いことはいいことだ」などによって、それを説明することは可能でしょうか?

Paul Beach: 最初に言っておかなくてはなりませんが、TPCテストはパフォーマンスの指標としては全く役に立ちません。TPCテストは大体にして現実の世界で実際に書かれているアプリケーションを反映していません。ベンチマークは常に実際にあなたが使っているアプリケーションで行わなくてはなりません、TPCの数字ではなくてね。
 InterBaseの現在のマーケティングと価格設定のポリシーはそれがオープンソースとなる前と比べてあまり変わっていないようです。外部の人間の視点から見ると、InterBaseがオープンソースになる前を見ていたとしたら、いま見ているものと同じです。ほとんど何も変わっていない。ボーランドの視点から見ると、あたかもInterBaseはオープンソースになっていないかのようで、例えていうと、何も起こっていないとでもいうか。でもそれは確かに起こって・・・、Firebirdがその証拠として生き続けているんです。

Marina Novikova: InterBaseを生業としている開発者にはどうしてこんなに仕事が少ないのでしょうか?例えばwww.job.comで探してみるとまったく見つかりません。このことをどうお考えですか?

Paul Beach: 何年にもわたってInterBaseを含む仕事の広告は増えてきています。あなたが InterBase について調べたのであれば、何も見つけられなかっただろうと、私は思いますよ。そういうやり方はいまでは正しくないからね。データベース開発者向けの大部分の広告は、通常は特定のデータベースに言及しないで、SQLのスキルを求めているんです。技術的によく熟練していることとSQLのスキルを持っていれば誰でも、 InterBase を使うことができるでしょう ( それらの人々が MS SQL、 Sybase 、オラクル、または、他のリレーショナルデータベース .. を使うことができるのと同様にね )

Marina Novikova: とても多くのロシアの開発者がFirebirdプロジェクトに参加して、開発に影響を与えているという事実について、どうお考えですか?

Paul Beach: 素晴らしいことだと思っていますよ、ロシアは何度も訪れましたし、ロシアでのカンファレンスで何度か話もしました。ロシアに行った時、大勢のロシアの開発者と会って、彼らはとても良い質問をする人々だったと思ったし、技術的に有能でしたね。

Marina Novikova: よく言われることだけどInterBaseはエイブラムスの戦車にインストールされているそうです。この情報を確認できますか?懐疑論者は弾道計算のために戦車にDBMSをインストールする必要は無いと言っています。でもこれが事実だとすると、何のために必要なんでしょう?

Paul Beach: 「マーケティング」話へようこそ、この話は何年もの間ちょっと手に負えないものになっていたね。何年も前に(記憶に頼って言っているんだけど)、InterBaseは米国陸軍向けの新型火器管制システム(AFTADS)を構築しているMagnavox社という会社とVAR契約を結んだんだ。そのシステムは、予測された標的を狙って射撃するように火器 ( 戦車を含む ) を制御するための中央射撃管制システムだった。InterBase は、このシステムのためのデータベースに選ばれたんだよ。なぜなら、砲弾が火を付けられたとき、局所的に火器管制システムを管理するサーバがクラッシュするかもしれないからなんだ。InterBase は、Magnavox社がテストした唯一のデータベースだった、それは自動的に回復して数秒でオンラインになるだろうとされていた。本当にこのシステムが実装されたのかどうかを私は知らないんだけど。しかし、あなたが言うように、それはInterBaseにとってとてもいい話だということになっている 。

Marina Novikova: InterBase Worldのコミュニティに一言何かお願いします。

Paul Beach: 長く続けて成功しましょう。


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/site_rsrc/images/92/interview_paul_beach.html

Interview with Dmitry Yemanov on InterBase World

Interview with Dmitry Yemanov
2003 / 3 / 10
2003 / 11 / 1 翻訳版 DelphiマガジンVol.31 掲載
Written by Marina Novikova
on InterBase World (URL http://www.interbase-world.com/)
翻訳:林 務(株式会社アペックス)

 本インタビューは、InterBase World のWebサイトでMarina Novikova氏によって公開されたものを、Marina氏とDmitry氏の許可によって翻訳したものです。
 Dmitry Yemanov氏はFirebird 1.5のリリース・マネージャーとして、そのコードのほとんどを書いています。CからC++へのポーティングと、新機能の追加など多方面にわたってその才能を遺憾なく発揮して、プロジェクトを牽引しています。
 Marina Novikova氏はロシアの企業で英文翻訳とテクニカル・ライターをするかたわら、InterBase Worldの管理者をなさっています。Marina氏はInterBase Worldで、毎週のようにインタビューやレビューを更新されているのですが、このインタビューは、技術的なことやビジネスに関することだけでなく、各ゲストの人となりがよく現れていて、私はいつも楽しみにしています。


Marina Novikova: 最初に、Dmitry Yemanovとはどんな人物か、InterBase Worldのコミュニティに話してくれるかな?

Dmitry Yemanov: そうだね、彼は陽気な25歳のヤングマンで、ちょっとした悪質な癖があるんだ。彼の人生は、これ全てプログラミング、その他のコンピューター関係ですら余計な時間を使う余裕もなかったりしてね。

Marina Novikova: 君がヘッドフォンをかけて騒々しい音楽を聴くことや、水曜日にロシア式スチームバス(banja)に行くこと、それに短い年次休暇にハイキングに行くのが好きだって知ってるわよ。どんな音楽が好みなのかしら?ハイキングで気に入ったルートはどこ?それから、どんなタイプのヴェニク(葉っぱの付いた小枝)をスチームバスに吊すのが一番お気に入りなのかな? Dmitry Yemanov

Dmitry Yemanov: 最初に言うと、別にうるさい音楽だけが好きなわけじゃないし、ヘッドフォンで聞くことだけが好きなわけじゃないよ。いいアンプとスピーカーを持っているんだったら、グッドなロックが最高だよ。うーん、でも僕の同僚達はどうやら僕の音楽の趣味を気に入ってくれていないようなんだ。そんなわけで、ヘッドフォンを使っているのさ。こう言えば、僕がどんな音楽が好きなのかはわかっちゃうとは思うけどね。ただ、僕のお気に入りのバンドは数え切れないくらいあるからね。頭から言うと(順番は適当ね)、キングクリムゾン、ピンクフロイド、ブラックサバス、RHCP、O’Funk’illo、ナイトウィッシュ、アポカリプティカ、ジョー・サトリアニ、それから誰でも知ってると思うけどレディオヘッドだね。
スチームバスについて言うと、あなたの言っていることは正解、僕はあれが大好きだね。もう、何年も前から定期的に通っているよ。時間が全然ないときもあるんだけどね。ヴェニクのタイプについては、樺材がいいと思うな(自分で作るならこれがいいね)。時々は、オークやジュニパーのヴェニクも利用するよ。Banjaは心と体の疲れを癒してくれるね、それに最近は仕事の後の精神的、肉体的な緊張をリラックスさせてくれる。
ハイキングについて言うと、ずっと前からハイキングのファンなんだよ。今は全然時間を取ることが出来ないのが残念なんだけど、表向きは、僕はハイキングが大好きということになってるんだよ。僕は未踏の荒野を旅するのがとっても好きなんだ。何キロも何キロも歩いて、ボートで、カヌーで踏破してきたよ。二年前には、夢がかなって、西コーカサスの山岳へ行くことが出来て、征服してきたんだ。その感じを話すのは難しいなぁ、一度行ってみてほしいな。だけど、僕はちょっと太ってきちゃったし、体を全然使って仕事をしてないので、今行けと言われてもきついかもなあ。でも、いいフィットネスとしてこれをすすめたいなぁ、なにしろ僕は2週間で7キログラムもやせたんだから。その頃の僕は肉体的に健康だったし、清く正しい生活を送っていたんだよね。特に好きなルートっていうのはないし、持ちたいとも思わないな、なにしろ僕は新しいもの全てから受ける印象を楽しみたいからね。

Marina Novikova: 他に、なにか趣味はあるのかな?

Dmitry Yemanov: 読書だろうね。いつでも読書することが好きで、よく本を読んでるよ。好きなものはフィクション(クリフォード・シマック、ロバート・ハインライン、アラン・フォスター、ロシアの作家としては、古いものでバシリー・ゴロバチェフ、サージェィ・ルキヤネンコのいくつか)、ファンタジー(ロジャー・ゼラズニィ、トールキン)、旅行記や歴史のドキュメンタリー小説(特に古代に関するもの)だね。

Marina Novikova: 好きなビールの銘柄は?他にどんなお酒が好きかな?

Dmitry Yemanov: ライト・ラガーが好きだね。例えば(また適当に挙げるけど)、ラクプレシス、ネフスコー、オボロン、バドワイザー、スタロプラメン。時々、黒ビールも飲むね。それから、他に選択肢がなければだけど、ペンザビールでもOKだね。 僕はラトビアで生まれたので、ビールは国民的飲料だったんだ(とはいってもチェコ共和国やババリア地方ほどじゃないけどね)、この愛着は生まれつきなのかもしれないね。
他に好きなアルコール飲料で言うと、ジョージアン赤ワインで、ソフトドリンクについて言うと、ミルクシェークとフレッシュ・ジュースが好きだな。

Marina Novikova: いやだなあと思うことと、他の人にいらいらすることはどんなこと?

Dmitry Yemanov: 相手が嫌いだと思っても、しなくちゃならないことってたくさんあるでしょ。どれか一つに決めるというのは難しいなぁ。そうだ、一つはっきりしてること、金を借りるのは大嫌いだね。それから、人々が二枚舌を使ったり不誠実だったりするといやな気持ちになるね。

Marina Novikova: 大きな夢っていうのはなにかある?

Dmitry Yemanov: うーん、一つだけ?わからないなぁ。僕は人生の全ての喜びと困難を経験して生きていきたいと思っているんだ。遠い先を見ることは好きじゃないんだ、先のことばかり考えていると幸運が逃げちゃうからね。
Firebirdについて言うと、多くの人がこのサーバーに興味を持ってほしいと思うし、もっと広めたいと思う。オープンソースの製品の間でさえ、本当にいい製品はそんなには多くないから、Firebirdは大穴だと思うよ。Firebirdの将来についての夢というのはなんとも言えなくて、僕らはただ仕事を進めるのみだね。それに、それ自体僕らに多くを負っているからね。

Marina Novikova: 料理はするの?一番好きな食べ物はなにかな?

Dmitry Yemanov: 料理はそんなにはしないなぁ、でも料理の腕を上げたいとは思ってる。ただ時間が全然ないんだよね。外食するときは、カツレツと野菜とかスモークした魚を頼むね。それとビールね、忘れちゃいけないよ。

Marina Novikova: 通りで女の子にウィンクされたりしたら、どうするー?

Dmitry Yemanov: 少なくとも、ウィンクし返すね。そこから先は、彼女にどんな印象を受けたかによるなぁ。

Marina Novikova: 学歴はどうだったかな?職歴も聞いていい?

Dmitry Yemanov: ペンザ州立大学でコンピューター・エンジニアリングの学位を取ったんだ、それから長いことコンピューターに関わってきた。その頃から、国防省向けの専用システム用のプログラムから、地方市場向けのERPシステムまでを企画・開発してきたんだ。

Marina Novikova: 最初に書いたプログラムはどんなものだった?いつ頃からプログラミングを始めたの?

Dmitry Yemanov: たぶん、大学で暗号化/復号化プログラムを書いたのが最初だね。僕は、暗号化に利用される有限要素法に興味があったので、かなり勉強したんだ。そのために、アセンブラでユーティリティを書いたよ。そのちょっと後で、アンチノイズ暗号化に興味を持つようになって(同じように数学理論に基礎を置いてるものだね)、別のプログラムをCで書いたんだ。僕はそういったプログラムを研究目的で書いたんだけど、思った以上にプロフェッショナルな出来だったね。
僕が初めて本格的な結果を出したのは、ネット越しに機能するオブジェクトを転送するために、DCOMテクノロジーに対して暴虐(この厄介なハックと非公式の機能について他にいい言葉が見つからない)を働いたことだね。僕はそれをモバイル・オブジェクト・テクノロジーと呼んだんだけど、作ったものは動作中のCOMオブジェクト(コードとデータの両方)をネットワークノード間でクライアントに対して透過的に移動することを可能にするメカニズムだったんだ(例:クライアントと対話中のサーバーを、それと感知されないまま別のノードへと移すことが出来る)。これによって、ダイナミックな設定と異なったプログラム・エージェントによる分散システムを構築することが出来るようになるんだ。

Marina Novikova: Firebirdプロジェクトに参加したのはいつ頃から?最初の頃に手助けしてくれた人は誰かな?

Dmitry Yemanov: その話は長くなっちゃうんだよなぁ。最初は、僕はFirebirdを使っていただけなんだけど、それがなかったら開発に参加することにはならなかっただろうね・・・。
1999年に僕らは新しい製品の開発のために安いRDBMSを必要としていたんだ。要件の一つはローカルでのシングル・ユーザアクセスではフリーでなければならなかった。僕は、経営陣がInterBaseがその条件にぴったりだと考えていたかどうかはわからない。まあ、そんな些細なことは誰も気にしてなかった。結果としては、僕がこのことを知ったのは開発の最終段階になってからで、プロジェクトはもはや崩壊寸前だったんだ。僕らはいろんな方法について議論を重ねて、そのどれもが最低でもプロジェクトのデッドラインを2ヶ月かそれ以上越えてしまうということがわかったんだ。ちょうどその時に、ボーランドがIB6.0Betaのソースコードを公開したんだ(ちょうど僕らのプロジェクトはこのバージョンを採用していた)。僕らにとってはたった一つのチャンスだった。この直後から僕は全てのInterBaseに関するイベント、Firebirdプロジェクトの開発、開発者の移りかわりなどをきっちりとウォッチしはじめたんだ。僕はこのことを「強制された依存関係」と呼んだんだ。
そんな訳で、僕は自然とコードに興味を持つようになって、そこかしこで変更したり追加したりしたいなあと思うようになったんだ。僕はほとんど1年間にわたってコードをいじり倒して、firebird-develから有益な情報全てを学んだんだ。その時には、Dmitry Kuzmenkoが唯一のロシア人だった。一度全部に目を通したので、自分でもいろいろと出来るようになって、初めてのパッチをリリースしたんだ。それが始まりだったんだね。Cluaudio氏とMark氏、Ann氏にはとても感謝しているよ、出来の悪いコードだったのにとても暖かく迎えてくれたからね。これは本当に簡単な事じゃないと思うんだよ、どこへ行っても、いつでも新しいことに対してはみんな保守的だったからね。Claudioのアドバイスで、Alexander Peshkovに紹介されてdynamic SQLの最初のバージョンのサポートを手伝うことになったんだ(こいつは今ではEXECUTE STATEMENTとして知られているね)。幸運にも、僕らがやろうとしていたことは全てうまくいって、チームの中でのどうあるべきかについて侃々諤々(かんかんがくがく)の議論の結果が出たんだよね。

Marina Novikova: Firebird Foundationからの助成を受け取るというニュースについては、どうやって知ったのかな?

Dmitry Yemanov: FFについては知っていたし、その一番重要な仕事と目的についてはよく知っていたので、僕にとっては「ニュース」とは呼べなかったね。

Marina Novikova: これまでにどこか外国へ行ったことはある?

Dmitry Yemanov: いや、外国へは行ったことはないなぁ。以前のソビエト連邦共和国を別にするなら、トルコだけがそのうちリストに入るんじゃないかな。そのうちたくさん旅行をしたいなぁ。

Marina Novikova: Firebird Foundationのメンバーで会ったことのある人は誰と誰かな?

Dmitry Yemanov: おかしな話なんだけど、誰とも会ってないんだ。 僕はインターネットを通して仕事をしているだけなので、これってインターネットの悪い点だよね。出来れば、ヨーロッパのFirebirdカンファレンスに行って、みんなと会ってみたいなぁ。

Marina Novikova: カンファレンスには参加するの?カンファレンスには何を期待する?どんな報告に一番興味がある?

Dmitry Yemanov: もちろん、このカンファレンスには絶対参加したいよね。でも、まだ参加できるかどうかわからないんだ(「お仕事」の方の状況によりけりなんだよね)、でも万難を排して参加するつもりだよ。カンファレンスに期待することはたった一つ、2年以上にわたって知り合ってきた人々と、コミュニケーションを持つ機会だってことだね。それから、参加者に僕らのFB1.5の結果を報告して、今後のプランを話す絶好の機会だよね。

Marina Novikova: あなたの考えでは、現在のプロジェクトの中で何が一番難しい問題だと思う?

Dmitry Yemanov: 開発者として言えば、僕はバージョン2.0~3.0の開発に対処しなくちゃならないだろうね。新しいODSはたくさんの変更が必要で、セキュリティを一新し、SSとCSの対立という問題を解決し、C++へのコードの移植を続けて、それ以外にもまだまだたくさん解決しなくちゃいけない問題があるんだ。プロジェクトの全てのモジュール上で作業して、人目に付かないところを全部手を入れて、ということはとっても大変なんだ。
プロジェクトの管理者としては、開発者としての希望や興味とプロジェクトの開発ロードマップとの間での妥協点を見つけなくちゃならない、開発のプロセスがアナーキーにならないようにしつつ、コード・ベースが混乱しないようにして、開発期間をきちんと管理していかないといけないよね。

Marina Novikova: プロジェクトの中で、あなたの最大の業績はなんになるのかな?それから人生においてはどう?

Dmitry Yemanov: 僕は、昨年の春に最初のリリース後にプロジェクトが沈滞してしまうのを防いだんだけど、それがそうかな。その時は、John Bellardoと僕だけがコード上での作業をしていて、新しいコード・ベース(firebird2)はまだ不安定でたくさんのバグがあったんだ。それらを修正することは大変困難で、同時に新機能を追加していたからなおさらだった。Johnが別の仕事を始めるのでプロジェクトを離れたときは、本当にびびったよ。幸運にも継続は力なりで、夏の終わり頃にはArno BrinkmanとNikolay Samofatovが参加してくれて、大いに助けてもらったよ。彼ら無しではFirebird 1.5は無かっただろうね。それから、他にも大勢の開発者がプロジェクトに参加して一緒に作業を進めてくれていて、みんなに感謝したいな。
人生における最大の功績は、まだこれからなんじゃないかな。

Marina Novikova: いつもEメールにすぐ返事をくれるよね。一日に最高どれくらいメールのやりとりをしたことがある?それは誰と?

Dmitry Yemanov: 仕事メールを除外すべきだと思うんだけどいい?そうでないと、とんでもなく莫大な数になっちゃうからね。 まじめに考えると、数えたことはないよね、でもとっても多くの時間を割いてるのは間違いない。本当にたくさん時間をかけてるね。僕のメールボックスを見てみよう、どれどれ、今日は22通のEメールを出してるなぁ。全部Firebirdに関するものばかりだ。大体平均してこんなものだと思うよ。

Marina Novikova: バグは再生するものだと信じている?

Dmitry Yemanov: 確かに、僕自身そのプロセスにどっぷりつかっているよ。

Marina Novikova: 新しいアイデアやインスピレーションをどこから得てるの?

Dmitry Yemanov: さっき、ビールと音楽の話をしたと思うんだけど、そうだよね?実際のところ、僕はそういうものをどこからでも得ているんだ、ちょっとリラックスして自分の注意を他のところへ向けたりしてね。僕はたくさんのアイデアやいい考えを持っていて、それは寝ているときだったり、眠りにつくときだったり、仕事の行き帰りや、休憩中に思いついたものなんだ。

Marina Novikova: えーとねディマ、どうしてWindows版のクラシックバージョンをリリースしたの?Jim StarkeyとAnnとその他大勢の人たちは、一度に二つのサーバーを分岐して開発するのはナンセンスだと考えているし、一般的に考えてもそのことが開発を遅らせるだろうし、人々を待ちくたびれさせてしまうんじゃないの?どうして、SuperServerをもっと良いモノにするだけじゃだめなの?

Dmitry Yemanov: この質問に対する答えはいくつかに分けて答えないといけないなぁ。
1)僕は彼らの意見にもちろん賛成なんだけど、統合されたアーキテクチャ(キャッシュを共有した「正しい」SSやCSのどちらであっても)は将来の課題だと思ってる、ただそれはすごく近い将来というわけではないんだ。恐らくそれまでにまだ1年以上の時間がかかると思う。そうだとすると人々は今どうするべきだろうか?
2)現在のClassi版はUNIXプラットフォーム向けになっているので、win32のユーザーはそのために困っているんじゃないだろうか?それに加えて、ここにはボーランドから引き継いだモノがあるので、問題無くwin32向けのClassic版を作成することが可能なんだ。もっと込み入っていたとしたら、多分僕はClassic版に取りかからなかったと思う。
3)ボーランドがInterBase 7でSMPのサポートを宣伝して、Yaffilが彼らのwin32向けClassic版を作成した、僕らとしては取り組まざるを得ない状況になったんだ。特に、僕らはパワフルなマルチユーザ・アプリケーションをSMPマシン上で利用することについて話し合っていたんでね。
僕としてはwin32向けのClassic版は過渡的なソリューションだと思っているので、まあこれで満足するクライアントは少ないだろうと思っているし、両方のタイプのアーキテクチャーを全てのプラットフォームでテストする機会を得て、今後のサーバー開発の情報を得ることが出来ればいいなと思ってるんだ。
「正しい」SuperServerのためには、決してつまらない作業というわけではないと思うよ。IB 7.0を見た限りでは、特に何の刺激も受けなかった。強いて言えば、Charlie Caroは素晴らしいコーダーでアーキテクトだっていうことかな。そういう意味では、何でもそうだけど、外から見てるほど簡単じゃないんだよね。

Marina Novikova: InterBase 6のオープンソース版についてはどう思う?それってボーランドの手違いだったのかな?

Dmitry Yemanov: それについてはイエスだね。ボーランドは、製品の開発戦略を選択して、それに従ってきちんと仕事をすることができないということを、まあやって見せたんだよね。InterBase部門の経営方針を変更して、VARパートナー(訳注:付加価値再販業者の意、代理店のことですね)とこっそりとした陰謀を行って、漠然とした「オープンソース思想」を持ち出して、それで結局ユーザーの信頼を得られなかったんだ。今となっては、あらゆる事が良い方へ変わったんだけど、その産みの痛みが残ってしまっているんだよ。それに加えて、ボーランドはかなりの数のユーザーを失って、それらのユーザーはFirebirdとYaffilを代わりに使っている訳なんだ。
後の残りは全部幸運だったとしか言いようがないね、幸運がIB/FB/YAファミリー全部の開発を早めてくれたんだなぁ。

Marina Novikova: Firebirdの将来についてどう考えてるの?

Dmitry Yemanov: もちろん考えてるよ。まず絶対に成功を収めるだろうということ。僕は思うんだけど(自分がオプティミストだって言わなかったっけ?)ここ数年に起きたことから考えて、プロジェクトはより強固になっているし、ユーザーはその結果を見てるよね。これは僕にとってとてもハッピーなことだね。僕らはいろんな問題に取り組んでいるにはちがいないけど、かならず最後までやり遂げると思っているよ。

Marina Novikova: Firebirdをエンド・ユーザー向けの製品にしようと思ってるのかしら?私の言っている意味は、パッケージにサーバーとドキュメントとクライアント・アプリケーションと管理ツール、その他を全部含めるつもりなのかなということなんだけど。さもなければ、Firebirdを普通のオープンソース・プロジェクトと同程度のものにしておこうということなのかしら、それっていうのはユーザーがあらゆる必要なことを自分達自身で解決しなくてはならないというようなモノってことなんだけど?

Dmitry Yemanov: 僕らは前者のようになることを望んでいるんだけど、現在の政治状況から全ての対応するドキュメントとプログラムを全てオープン/フリーにする必要があるんだよね・・・。それらが形作られて作成されたとしたらね、まあやってみようとは思ってる。問題があるとしたら、とてもたくさんのプログラムがIB/FB/YA向けにありすぎて、どれかを一つ選んでパッケージに組み込むのが難しいということだろうね。そんなわけで、近い将来に僕らはサード・パーティの製品についてその概要とリンクを示すリストだけでもパッケージに含めたいと思ってるんだ。

Marina Novikova: もしあなたがボーランドのInterBaseセクションにいたとしたら、最初に何をやりたいと思う?

Dmitry Yemanov: すぐに辞めてFBのチームに合流するよ。

Marina Novikova: どうしてYaffilに行かなかったの?

Dmitry Yemanov: それは良い質問だね。最初にFBプロジェクトのメンバーになって、Olegが新しいクローンを作ろうと思っているとはわからなかったんだ。Yaffilプロジェクトが独立して、活発に活動を開始した後で、僕らはとても困難な時期を迎えたんだ。僕にもプライドや意地もあったので、自分自身で結果を出したかったんだ、プロジェクトが危機を乗り越えたとしても、あるいは破綻してしまったとしてもね。状況が悪い方へいってしまっていたら、今頃僕はYaffilに関わっていただろうね。でも、僕はFirebirdを去らなかったし、失敗もたくさんあったけど、それと同じくらいたくさんの努力をしてきんだ。

Marina Novikova: FB1.5の新しいメモリマネージャーは1.0のモノより良くなっていると考えてる?それから、どうしてそれを変更しようと思ったの?

Dmitry Yemanov: 間違いなく良くなっているよ、テストの結果もそう出ているしね。そもそもそれが理由で、僕らはメモリマネージャーを変更したんだ。 以前のメモリマネージャーは、すでに多くのブロックを配置した後では、新しく解放されたブロックの配置に関して制限があったんだ。標準的な例を挙げると、複雑なデータベースのリストアや、データに対する多数の操作、その他で発生してしまうんだ。今、僕らはこういった問題を解決してパフォーマンスを向上させることに成功したんだ。

Marina Novikova: 将来の優先事項はどうなってるのかな?最初に何を変更/作成したいと思ってる?

Dmitry Yemanov: そのリストは膨大なんだよ、最低でも1ページになっちゃうよ。 僕らはすでに将来のプランを作成しているんだけど(それはカンファレンスの参加者には手渡せるようになっているんだけど)、その中に大事なことは全部組み込まれているんだよ。要するに、既にわかっている問題を解決するだけで十分なんだ。
最後になるけど、Firebirdを選んで使ってくれているInterBase Worldのコミュニティの皆さんを決してがっかりさせたりしないように頑張りますよ!


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/site_rsrc/images/92/interview_dmitry_yemanov.html

Firebird V1.5 Release Notes

Firebird V1.5
リリースノート

Firebird1.5のリリースノート(PDF)です。
こちらからダウンロード或いは閲覧できます。(英語版)


旧Firebird日本ユーザー会サイトから移行した過去記事です。内容は当時の記録です。記事内のリンクなどはリンク切れなどにご注意ください。

過去記事掲載時URL(閉鎖予定):http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=63