問題タブ [berkeley-db-je]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
324 参照

java - Berkeley DB Java Edition : 環境作成の苦労

Berkeley DB Java Ed は初めてです。そして使おうとしています。本当に簡単な質問があります。データベースの環境を作成できません。私はこのコードを使用しています:

EnvironmentConfig.setAllowConfig(true) を使用しましたが、必要なファイルが作成されません。

私は本当にそれを理解していません:( DBを作成する方法に関するアイデアはありますか?私のセットアップについて知っておく必要があることはありますか?助けてくれてありがとう!

0 投票する
1 に答える
620 参照

java - マルチデータベース、単一の Berkeley DB JE 環境でのデータベースの削除

BerkeleyDB JE 環境に、結合されたメインデータベースと (一時的および補助的な) データベースがあります。問題は次のとおりです。

  • トランザクションを使用しており、原子性はメイン DB と補助 DB の両方にまたがる必要があります
  • したがって、ドキュメントを理解しているので、単一の環境を使用する必要があります (トランザクションは複数の環境にまたがることはできません)。
  • したがって、2 つのデータベースは 1 つのディレクトリを共有します。しかし、彼らは同じファイルも共有していますか?
  • aux DB は非常に大きくなる可能性があるため、アプリケーションの開始時に消去したいと考えています。
  • 私はe.truncateDatabase(txn, name, false)そうしていました
  • ただし、データベース ディレクトリは決して縮小しないようです。そのため、すべてのアプリケーション実行で aux DB がたとえば 500 MB を使用する場合、4 回の実行後、切り捨てに関係なく、ディレクトリはすでに 2 GB になります。また、メイン DB と補助 DB の個別のファイルが表示されません

ディスク領域が解放されるように、どうすればauxデータベースを完全に消去できますか? これはパフォーマンスの問題でもあります。これらの数 GB の大きなディレクトリでは、BDB の起動と終了に深刻な問題が発生するためです。特定のファイルだけを削除できるように、BDB に別のファイルを使用させることはできますか?


どういうわけか、この単一の環境が問題の根源にあるようです。たとえば、補助 DB を提供してパフォーマンスを向上させたいと考えていますsetTxnNoSync()が、これはメイン DB にも影響します。


aux DB で使用するsetTemporaryと、実行時例外が発生します。一時データベースでトランザクションを使用することは許可されていないようです!?

java.lang.IllegalArgumentException: データベース aux を開こうとしたが、次の排他的プロパティの 2 つ以上が true である: deferredWrite、temporary、transactional

0 投票する
0 に答える
92 参照

java - なぜ v5 ではなく BerkeleyDB JE v6 を選ぶのでしょうか?

残念ながら、Oracle BDB のリリース ノートには内容がまったくありません。

BDB JE バージョン 5 からバージョン 6 に切り替える必要があるのはなぜですか? 大幅なパフォーマンスの向上はありますか? そうでない場合、次の 2 つの短所しかわかりません。

  • v5 は Sleepycat を使用し、v6 は AGPL 3 を使用します。したがって、v5 は GPL v2+ と互換性がありますが、v6 では GPL v3 に移行する必要があります。
  • v5 は Java 6 で動作し、v6 は Java 7 が必要です
0 投票する
0 に答える
316 参照

berkeley-db-je - 高速リカバリのためにberkeley-DB-JE環境を最適化する方法は?

ストレージに Berkeley-DB データベースを使用する単純なマルチスレッド Java アプリケーションを実行しています。約 500 のスレッドがあり、各スレッドには独自の Berkeley-DB データベースがあり、各データベースは約 100K の値とキーのペアです。すべてのデータベースはトランザクションであり、各トランザクションには最大約 1000 の操作があります。長時間実行されるトランザクションはありません。

問題は、アプリケーションの再起動時に、Berkeley-DB のリカバリに非常に長い時間がかかる場合があることです。リカバリ中 (環境を開く) に、Java プロセスが約 100MB/秒の速度でディスクから読み取りを行っていることがわかります。書き込みはありません - 読むだけです。

セットアップは次のようになります。

また、チェックポイントを 15 分ごとに手動で実行してみました (チェックポイントが停止するなどの可能性があると想定しています)。も設定してsetMinimizeRecoveryTime(true)います。しかし、助けはありません。

Java または Berkeley DB の設定に問題があると思われます。

データベースへの書き込み速度を犠牲にしながら、回復時間を短縮する方法はありますか?

0 投票する
1 に答える
150 参照

database - About Berkeley DB Java Edition

I'm using Berkeley DB Java Edition(6.3.8), but I'm not sure if the database is supposed to be accessed by one JVM instance. Can two JVM instance access it simultaneously(assume one instance do put and get, and the other do get only)?

0 投票する
1 に答える
126 参照

java - 条件を満たすBerkeley DBを使用してすべてのオブジェクトを取得する方法

昨日、Berkeley DB とそのパフォーマンスについて知りました。Java プロジェクトで使用したいと考えています。

私が知りたいのは、特定の条件を満たすすべてのオブジェクトを DB に格納する方法です。

たとえば、タイプMessage(int id, String value, Date date)のオブジェクトが保存されており、過去 10 分間のすべてのメッセージを取得したいと考えています。

つまり、この SQL クエリに相当するものは何ですか

バークレー DB で。

Berkeley DB の API でそれを行うことは可能ですか、それともすべてコーディングする必要がありますか?

前もって感謝します。

0 投票する
1 に答える
31 参照

java - openbatabase に関する berkleybd Java Edition API

Oracle ライブラリの「Getting Started with Berkeley DB Java Edition」のドキュメントを読みました。次の API を見つけました。

Database
openDatabase(Transaction txn, String databaseName, DatabaseConfig dbConfig) データベースを開き、オプションで作成します。

しかし、アプリケーションで使用すると、次のことがわかりました。

public Database openDatabase(Transaction var1, String var2, String var3, DatabaseConfig var4) throws DatabaseException, FileNotFoundException { return new Database(DatabaseConfig.checkNull(var4).openDatabase(this.dbenv, var1 == null?null:var1.txn, var2 、var3)); }

ここに画像の説明を入力してください ここに画像の説明を入力してください ここ に 3 つではなく 4 つのパラメータがあります。何が起こっているのかわかりません... 誰か助けてください、ありがとう