+ FastDB GigaBASE
created 2005-07-05 modified 2011-03-06
以前2chにスレ立てたら、ネタがなくてあっというまにdat落ちしたことですよ...
気が向いたときにチマチマ翻訳でもしてみるテスト
オリジナルサイトへのリンク |
---|
添付文書を日本語に翻訳しかけたもの
ブラウザで直接見えるもの | 更新 | 参照バージョン |
---|---|---|
2011/3/6 | 3.66 | |
2005/12/1 | 3.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 | これを使ってるそうです。ポスグレと同じ? |