flat7th

+ FastDB GigaBASE

created 2005-07-05 modified 2011-03-06 

以前2chにスレ立てたら、ネタがなくてあっというまにdat落ちしたことですよ...
気が向いたときにチマチマ翻訳でもしてみるテスト

オリジナルサイトへのリンク

添付文書を日本語に翻訳しかけたもの

ブラウザで直接見えるもの更新参照バージョン
2011/3/63.66
2005/12/13.22

外で作業したらここに添付してます。通常こっちのほうが新しいです


Doxygen

通常版オリジナルサイトからたどれるのとほぼ同じもの(Japanese出力)
詳細版privateも出力したもの



下記はオリジナルサイトのトップを翻訳したものです。

FastDB

あなたは、メインメモリデータベースはエキゾチック(異国風)なものと考えますか?
ふむ、まず私からのいくつかの質問に答えてください。
あなたのデータベースのサイズは100Mb(原文ママ)より大きいですか?
あなたのコンピュータのメモリはどれだけですか:128Mb(原文ママ), 512Mb,...?
現在、あなたのコンピュータのメモリをアップグレードするのにいくらかかりますか?
そのコストを何らかの商用RDBMSと比べてみてください。
そして、もしあなたのデータベースアプリケーションが今より10倍速く動き始めたら、
あなたは何と言いますか?
おそらくいまや、あなたはMMDBMSを特殊アプリケーション向けのエキゾチックなものとは
考えていないでしょう。
FastDBは、DBMSがサポートするあらゆる機能を提供します。
問い合わせ言語、トランザクション、データに対する並列アクセス、
オンラインバックアップ、失敗からの回復。さらに何か必要ですか?

サポートプラットフォーム

FastDBはWin98、WinNT、Win2k、WinXP、Linux、FreeBSD そして Solarisでテストされました。
もしあなたがFastDBをほかのプラットフォームに移植したら、私に教えてください。

GigaBASE

GigaBASEは多くの機能をFastDBから継承していますが、
仮想メモリ上のファイルへの直接マッピングの代わりに、ページプールを利用します。
そのためGigaBASEはコンピュータの物理的なメモリサイズを遥かに超えるデータベースを
扱うことができます。
利便性と柔軟性のあるC++インタフェースは、GigaBASE用のアプリケーション作成をとても
容易にします。さらに、自動スキーム生成はシステムのメンテナンスと変更を単純化します。
GigaBASEはリレーショナルデータベースの利点(シンプルなデータ構造、
非手続き的問い合わせ言語)とオブジェクト指向データベースの利点、
(直接オブジェクト参照、ユーザ定義の型とメソッド)を結合します。

GigaBASEは、DBMSがサポートするあらゆる機能を提供します。
問い合わせ言語、トランザクション、データに対する並列アクセス、
オンラインバックアップ、失敗からの回復。さらに何か必要ですか?

サポートプラットフォーム

GigaBASEはWin95/98, WinNT, Win2k, WinXP, Linux, Solaris, FreeBSD, OpenBSD, AIXでテストされました。
MAC-OSへの移植が進行中です(Wilfried Bernard により遂行されています)。
もしあなたがGigaBASEをその他のプラットフォームに移植したら、私に連絡してください。



だそうです。



メモ

  • メモリマップドファイル or プロセス間共有メモリ or プロセスローカルメモリ を、OQLでアクセスできるようなもの。
  • 1つのデータベースの情報を複数プロセス間で共有できる。
  • 1-Writer, N-Reader でアクセスできる。ただし、書くプロセスは1つだけ、あとのプロセスは読むだけ、というモデルに最適化されている。

  • ロックの機構を複雑にするより、ロックの単位を大きく、そのかわりオーバヘッドを小さくして、短時間で解放しようという戦略。
  • ロックする単位はデータベース。

  • トランザクションが実装されているようだが、マルチスレッドに関しては直感的な1-Writer N-Readerではなさげ(調査中)
  • Writer が書いている最中も Reader がブロックされずに読みたければ、Writer と Reader は別プロセスとして、なおかつ Reader は読み込み専用プロセスでないとだめ。レプリケーションみたいなモデル。
  • マルチスレッドにする場合、スレッドの生成は dbThread クラスで行わないとだめ。このクラスは POSIXスレッド、あるいはWindowsスレッドをラップしており、FastDB 固有の必要な処理が追加されている。
  • 1つのプロセスが複数データベースを開くのは…調査中。

  • ユニーク制約の機能がない。

もしかしたらSDIのドローツールとかに向いているのかも。
チーム内調査ではSQLiteよりはだいぶ速い。ある処理の書き込みで7.1~10倍、selectクエリ実行+αで2.2倍。

リンク

リンク備考
The GiST Indexing Projectこれを使ってるそうです。ポスグレと同じ?