Oracle Berkeley DB

Oracle Berkeley DBは、業界をリードするオープン・ソースの組込み可能なストレージ・エンジンです。管理が不要であり、高速で信頼性の高いローカル・データベースを開発者に提供します。このOracle Berkeley DBは、アプリケーションに直接リンクされるライブラリです。アプリケーションは、メッセージをリモート・サーバーに送信するのではなく、単純な関数コールをおこなうだけなので、クライアント/サーバー・アーキテクチャによるパフォーマンス低下を排除できます。

Oracle Berkeley DBは、従来のリレーショナル・データベース・システムと同様の堅牢な データ・ストレージ機能(ACIDトランザクションとリカバリ、ロック機能、高い同時実行性を実現するためのマルチプロセスとマルチスレッド、ホットおよびコールド・バックアップ、 高可用性アプリケーションを実現するレプリケーションなど)を提供します。メモリ内、ディスク上、あるいはその両方でデータベースを管理することが可能です。また、完全に無人で稼働するように設計されており、稼働時のすべての管理は管理者ではなく、アプリケーションによってプログラム的に制御されます。Oracle Berkeley DBは、フットプリントが小さく、スケーラブルで信頼できる高速なライブラリを使用するように設計されています。

Oracle Berkeley DBは、キーと値がペアになったデータにインデックスが付けられたOPAQUE型バイト配列として、データを上の図にあるアクセス方法の1つで格納するように設計されています。これらのキーと値のペアに対する作成、読取り、更新、削除(CRUD)操作は、BDB get/put APIまたはカーソル位置ベースのAPIを使用して実行されます。また、Oracle Berkeley DBは、JavaコレクションAPIとJava Direct Persistence Layer APIもサポートしています。

もう1つの方法として、より扱いやすいSQL問合せ言語およびリレーショナル・データ型を使用することも可能です。下の図に示すように、Oracle Berkeley DB 11g Release 2の新機能はSQL APIです。

オラクルは、SQLiteの長所とOracle Berkeley DBの長所を組み合わせました。SQL APIを選択するとBerkeley DB APIは完全に隠された状態になり、プログラムはSQLite APIを使用するように記述されます。SQLiteは完全なSQLデータベース・エンジンなので、JDBC、ODBC、または互換性のある任意のアクセス・レイヤーを自由に使用できます。Oracle Berkeley DBの長所は、組み合わされた製品にもすべて引き継がれます。状況によっては、Oracle DatabaseとOracle Berkeley DBの間でリレーショナル・データのすべてまたは一部を同期させることが必要になる場合があります。現在、この同期は、Oracle Mobile Data Syncを使用することで可能となっています。エンタープライズ向けOracle Databaseから最先端のOracle Berkeley DBまで、これらの製品の組合せは、アプリケーション、デバイス、モバイル・ソフトウェアで使用されるフットプリントが小さいSQLストレージのためのもっとも優れた組込みソリューションを提供します。

Oracle Berkeley DBは非常に柔軟性があり、その動作の多くは開発者により制御可能です。このため、幅広いアプリケーション間で使用でき、独自のカスタム・ソリューションの代わりにすることが可能です。たとえば、開発者はリソースの割当て方法、レコード・キャッシュ専用メモリの量、個々の表に使用されるオンディスク・ストレージの構造、永続性と分離性の保証、レプリケーション・ポリシーを制御できます。また、完全なソース・コードが含まれており、移植、統合、デバッグ、最適化を実行することが容易です。

データをローカルに保存する必要があり、中断なく無人で実行され、予想可能な方法でデータにアクセスするようなアプリケーションに対して、Oracle Berkeley DBは非常に高速で信頼性の高いスケーラブルな永続性を提供します。

データ管理

Oracle Berkeley DBは、ほかのデータベースで見られるようなオーバーヘッドを生じることなく迅速かつ容易にデータを格納します。また、Oracle Berkeley DBはアプリケーションと同じプロセスで実行されるCライブラリであり、リモート・データベース・サーバーを使用することによるプロセス間通信の遅延は発生しません。共有キャッシュにより、もっともアクティブなデータがメモリに保持され、コストのかかるディスク・アクセスが回避されます。

  • 組込みプロセスにリンクされるデータ管理用のライブラリ
  • SQL経由でアクセスできるOPAQUE型のキー/値またはリレーショナル・データから任意のデータが使用可能
  • 索引と順次検索(Bツリー、キュー、Recno、ハッシュ)
  • マルチプロセスとマッチスレッドのサポート
  • 同時実行性の高いシステムに対する詳細で構成可能なロック機能
  • Multi-version concurrency control (MVCC)
  • セカンダリ・インデックス
  • キーごとに値を複製
  • 参照整合性
  • インメモリ、ディスク、または必要に応じた任意の組合せによるデータ格納
  • オンラインBツリー最適化とコンパクション
  • オンラインBツリー・ディスク領域再利用
  • 放棄されたロックの自動解除
  • AES標準の使用により、ディスクに格納されているデータの強力な暗号化
  • 高い移植性により、多くのプラットフォームで利用可能

トランザクション

ACIDトランザクションを使用するようにOracle Berkeley DBを構成すると、データ格納の信頼性が向上します。Oracle Berkeley DBでは、一連のデータベース操作を、すべてが正常に完了した操作、または完了していない操作などのグループにまとめることができます。システム障害が発生した場合、Oracle Berkeley DBは自動的にリカバリをおこない、部分的に終了していたトランザクションをロールバックして、システムを一貫性のある状態に保ちます。

  • ACID - トランザクションの原始性、一貫性、独立性、永続性の保証
  • 選択可能な分離レベルと永続性の保証、トランザクション・ベースごとに構成可能
  • ネスト化されたトランザクションのサポート
  • 致命的およびルーチン障害からリカバリする方法のサポート
  • 高度な構成が可能な、グラフおよびタイムアウトをベースにしたデッドロック検出機能
  • アプリケーション固有のログ・ファイル・レコードとリカバリのサポート
  • ホットおよびコールド・バックアップ、ログ・ファイルのアーカイブ、全データベース・ダンプ

レプリケーション

高いシステム・スケーラビリティまたは可用性、あるいはその両方が必要な場合、Oracle Berkeley DBは、システムのグループでワークロードを処理することを可能にする最先端のレプリケーション機能を提供します。シャーシ内のボード間、データセンターの複数のサーバー間、または地理的に分散しているサイト間でレプリケーションが可能です。このレプリケーション・システムのすべての側面(データの整合性、トランザクションの保証、スループット、ネットワーク転送など)は構成可能であり、アプリケーション固有の要件を満たすためにチューニングできます。

  • 単一のマスター、複数のレプリカ・モデル
  • 自動フェイルオーバー/再選択
  • PAXOS準拠の選択アルゴリズム
  • いつでもグループに新しいレプリカを結合可能
  • ホット・スタンバイ
  • 無停止アップグレード
  • 地理的に分散したノード
  • インメモリ・レプリケーション・オプション
  • クライアント間レプリケーション
  • クライアントの遅延同期
  • スロットリングの同期化
  • ネットワーク転送アグノスティック
  • 数千のレプリカ・ノードが可能な実証済みのスケーラビリティ
  • 迅速な配置を可能にするビルトイン・レプリケーション・フレームワーク

デプロイメント

Oracle Berkeley DBには非常に柔軟性があり、デプロイおよび統合が容易です。サイズが約1MBと小さいライブラリは、アプリケーションとともに簡単にインストールおよび構成できます。このOracle Berkeley DBは完全に無人で稼働するように設計されており、すべての管理機能はプログラム的に制御されます。また、幅広い種類のプログラミング言語とオペレーティング・システム・プラットフォームをサポートしています。ミッション・クリティカルなキャリア・クラスのアプリケーションからデスクトップやモバイル・デバイスのアプリケーションまで、数百万に上るデプロイの実績があります。

  • プログラム的な管理 - 人的管理が不要
  • 言語サポート(C、C++、Java、Perl、Python、PHP、Tcl、Rubyなど)
  • オペレーティング・システムのサポート(Linux、Windows、BSD UNIX、Solaris、Mac OS/X、VxWorks、POSIX準拠のすべてのオペレーティング・システム)
  • Microsoft Windowsプラットフォーム用のバイナリ・インストーラ
  • メモリに制約のあるデバイスのサポート(600KBの程度のフットプリント)
  • テラバイトのデータ、数十億のレコードまで拡張可能
  • ソース・コード、テスト・スイート内蔵
Product Information
 Data sheet: Oracle Berkeley DB (PDF)
 Internet seminar: Discover Berkeley DB Series: Architecture (Flash)
 ホワイト・ペーパー: Oracle Berkeley DB: パフォーマンスと構成オプション(July 2010)
 White Paper: Performing Queries in Oracle Berkeley DB Java Edition: a paper that demonstrates how to rewrite SQL using the Direct Persistence Layer (DPL) (Aug 2008)

その他のリソース