Oracle Berkeley DB Java Edition

Oracle Berkeley DB Java Editionは、オープンソースの組込み可能なトランザクション型のストレージ・エンジンで、すべてJavaで記述されています。 Java環境を最大限に活用することで、開発と配置を簡単におこなえるようにしています。 Oracle Berkeley DB Java Editionのアーキテクチャは、読取り集中型と書込み集中型の両方のワークロードに対して、高いパフォーマンスと同時実行性をサポートします。 ニーズに合わせて、Oracle Berkeley DB Java EditionのDirect Persistence Layer(DPL)の使用、永続コレクションAPIの使用、または任意のデータのキーと値のペアを単純に格納するかを選択してください。 アプリケーションがリレーショナル・データベースの範囲外にある何かを必要とする場合は、Oracle Berkeley DB Java Editionが最適な選択肢になるでしょう。

Javaソリューションの大半は、Java永続性API(JPA)などのオブジェクト・リレーショナル・マッピング(ORM)を使用して、クラスとインスタンス・データをRDBMSの行と列にマッピングしています。 リレーショナル・データベースはデータの格納と分析に非常に適していますが、大部分の永続化オブジェクト・データは、非定型SQL問合せを使用して分析されることはありません。通常はそのまま取得され、Javaオブジェクトとして再構成されます。 ORMを使用している理由は、ただそれがそこにあるからでしょうか?それともSQLの機能が本当に必要だからでしょうか?リレーショナル・ストレージの価値は、オブジェクトの格納と取得といった基本的なタスクでは発揮されません。 しかし、Oracle Berkeley DB Java Editionは違います。 Oracle Berkeley DBは、オブジェクト・グラフ、コレクション内のオブジェクト、または単純なバイナリ・キーと値のデータを、ディスク上のBツリーに直接格納します。 このシンプルで極めて効率的な方法により、ORMソリューションにおける不要なオーバーヘッドがすべて解消されます。 Direct Persistence Layer(DPL)を使用する場合、Java開発者は、JPAの場合と同じようにストレージ情報を注釈としてクラスに付加することができます。 この方法は、使いやすく効率的で、しかも高速です。 DPLは、速度を低下させずにデータ・ストレージの複雑さを軽減します。

Oracle Berkeley DB Java Editionは、今日利用可能なその他すべてのJavaデータベースとは異なり、 Javaで構築されたリレーショナル・エンジンではありません。 Oracle Berkeley DBスタイルの組込みストアであり、DBAではなく、プログラマー用に設計されたインタフェースを備えています。 アーキテクチャは、ログ・ベースの上書きしないストレージ・システムに基づいており、高い同時実行性と高速処理を実現すると同時に、ACIDトランザクションとレコード・レベルのロックを提供しています。 Oracle Berkeley DB Java Editionは、アプリケーションで指定された制限を上回ることなく、メモリ内にもっとも一般的に使用されるデータを効率的にキャッシュします。 このような方法で、Oracle Berkeley DB Java Editionは、アプリケーションと連携して使用可能なJVMリソースを使用すると同時に、非常に大きなデータセットへのアクセスを提供します。

Oracle Berkeley DB Java Editionは、J2EE内に3つの主要なAPIを実装することで、J2EEアーキテクチャに適合しています。 JavaトランザクションAPI(JTA)により、Berkeley DB Java Editionは、アプリケーション・サーバー内の管理対象トランザクション・リソースとして機能することができます。 また、アプリケーション・サーバーへの統合を容易にするために、J2EE Connector Architecture(JCA)も実装しています。 さらに、大部分のアプリケーションでは、統合されてトランザクション処理を実行するようになると、サービスを管理するための機能が必要になります。 Berkeley DB Java Editionでは、Java Management Extensions(JMX)を使用して、情報とサービスをエクスポートします。また、JTA、JCA、JMXと協調することで、J2EEベースのソリューションの予測可能な方式でその機能を最大限に活用します。

Oracle Berkeley DB Java Editionは、複数システム間でのレプリケーションをサポートしており、短い待機時間でアプリケーションを大幅に拡張できます。また、高可用性ソリューションのためのフォルト・トレランスを提供します。 この技術は、指定されたマスターにすべての更新を移動することで機能します。指定されたマスターは、変更内容を自動的に一連のレプリカに分散します。 読取りワークロードはレプリカ間で分散でき、いつでも新しいレプリカをグループに結合して、システムを拡張できます。 いずれかのレプリカで障害が発生しても、残りのレプリカがそのレプリカのワークロードを引き継ぎます。 マスターで障害が発生した場合、レプリカは選択処理を実行して新しいマスターを指定します。 新しいマスターが選択されると、すべてのレプリカと新しいマスターの同期がとられ、サービスを中断することなく通常の処理が進められます。 通常、マスター・フェイルオーバー・プロセスは一瞬で完了しますが、停止時間が発生しないことを保証するために、フェイルオーバー期間中に発行された読取りリクエストに対してはレプリカがサービスを提供できます。

データ・ストレージ

Oracle Berkeley DB Java Editionは、ほかのデータベースで見られるようなオーバーヘッドの発生を抑えつつ迅速かつ容易にデータを格納します。 このOracle Berkeley DB Java Editionは、アプリケーションと同じJVMで実行される単一のJARファイルであり、リモート・サーバーはありません。 ローカル・キャッシュがもっともアクティブなデータをメモリに保持するため、コストのかかるディスク・アクセスが回避され、JVMメモリの使用は予想可能な量に制限されます。

  • ローカルのインプロセス・データ・ストレージ
  • スキーマに依存しない、アプリケーション固有のデータ・ストレージ
  • キーと順次データ検索
  • 使用しやすいJava Collections API
  • JavaオブジェクトにアクセスするためのDirect Persistence Layer(DPL)
  • DPLクラスのスキーマ・エボリューション
  • 単一プロセス、マルチスレッド・モデル
  • 高い同時実行性を実現するためのレコード・レベルのロック
  • セカンダリ・インデックスのサポート
  • インメモリ、ディスク上、または両方
  • データを再編成し、ディスクの使用を最適化する構成可能なバックグラウンド・クリーナ・スレッド

トランザクション

Oracle Berkeley DB Java Editionは、データを確実に保存し、データの整合性を保ちます。 システム障害が発生した場合、Oracle Berkeley DB Java Editionは、トランザクション・データをリカバリし、ログやデータベース情報を使用して機能的かつ一貫性のある状態にシステムをリセットします。

  • ACIDに完全準拠
  • 選択可能な分離レベルと永続性の保証、トランザクション・ベースごとに構成可能
  • Java Transaction API(JTA)を使用した管理対象トランザクション
  • J2EE Connector Architecture(JCA)を使用したJ2EEアプリケーション・サーバーの統合
  • Java Management Extensions(JMX)を使用した監査、監視、管理
  • 致命的およびルーチン障害のリカバリ・モード
  • タイムアウト・ベースのデッドロック検出
  • ホットおよびコールド・バックアップ、ログ・ファイルのコンパクション、全データベース・ダンプ

デプロイ

Oracle Berkeley DB Java Editionは、移植性が高く、非常に柔軟性があり、容易に統合できます。 また、最初からJava環境を最大限に活用したPure Java製品として設計されています。 単一のJava Archive(JAR)ファイルであるため、アプリケーションを実行するJVM内で稼働します。 Oracle Berkeley DB Java Editionは、エンタープライズ・クラスのPure Javaのデータ・ストレージ・ソリューションを備え、大規模で成長するJavaコミュニティで使用するように設計されています。

  • 100% Pure Javaで移植性があり開発が容易
  • 単一のJARファイル - インストールが容易、アプリケーションと同じJVMで稼働
  • Java 1.4.2以降のStandard Edition JVMが必要
  • プログラム的な管理
  • 人的な管理が不要
  • ルーチン管理機能のためのAPI
  • 小さなフットプリント(820KB)
  • テラバイトのデータ、数百万のレコードまで拡張可能
  • ソース・コード、テスト・スイート内臓

Product Information

 Data sheet: Oracle Berkeley DB Java Edition (PDF)
 Quotes: What customers are saying about Berkeley DB Java Edition
 White paper: Berkeley DB Java Edition High Availability (HA) (PDF)
 White paper: Write Forwarding Using Java RMI (PDF)
 White paper: Berkeley DB Java Edition Architecture (PDF)
 White paper: Direct Persistence Layer for Berkeley DB Java Edition ( English) ( Chinese) (PDF)
 White paper: Oracle Berkeley DB Java Edition vs. Apache Derby: A Performance Comparison (PDF)

Technical Resources

 Blog Post: How to configure Oracle Berkeley DB Java Edition for use on Google Android devices
 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)
 Article: Dynamo: Amazon's Highly Available Key-Value Store, All Things Distributed (Oct 2007)
 Article: Embedded Java Persistence ( English) ( Chinese - PDF), Oracle Magazine (March/April 2007)
 Documentation: Berkeley DB Java Edition
 よくある質問: Berkeley DB Java Edition
 Article: Oracle Berkeley DB Java Edition 3.1.0: Direct Persistence Layer, The Server Side (October 2006)
 Article: High-Performance Data Management in Java, Dr. Dobb’s Journal (May 2005)
 Article: Using Berkeley DB Java Edition as a Persistence Manager for the Google Web Toolkit, OTN (Feb 2008)
 Presentation: Design and Implementation of a Transactional Data Manager, JavaOne 2004 (PDF)
 Discussion forum: Berkeley DB Java Edition