問題タブ [leveldb]
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.
python - py-leveldb の WriteBatch をこのように使用するとメモリ リークが発生するのはなぜですか?
そこで、leveldb データベース ( py-leveldb ) を使用してビットコイン ブロックチェーンをアドレスでインデックス付けするための Python スクリプトを作成していますが、クラッシュするまでメモリをどんどん消費し続けます。以下のコード例で動作を再現しました。コードを実行すると、システムで使用可能な RAM が使い果たされ、プロセスが強制終了されるか、「std::bad_alloc」がスローされるまで、ますます多くのメモリが使用され続けます。
私は何か間違ったことをしていますか?バッチ オブジェクトに書き込みを続け、時々コミットしますが、WriteBatch オブジェクトのデータをコミットしても、メモリ使用量が増加し続けます。コミット後に WriteBatch オブジェクトを削除することさえあるので、私が見る限り、メモリリークの原因はこれではありません。
私のコードは間違った方法で WriteBatch を使用していますか、それとも py-leveldb にメモリ リークがありますか?
コードを実行するには py-leveldb が必要です。ここから入手してください: https://pypi.python.org/pypi/leveldb
警告: このコードを長時間実行すると、メモリを使い果たしてしまいます。重要なシステムでは実行しないでください。また、スクリプトが実行されるのと同じフォルダー内のフォルダーにデータを書き込みます。私のシステムでは、このフォルダーには、メモリが使い果たされる前に約 1.5 GB 相当のデータベース ファイルが含まれます (最終的に 3 GB 以上の RAM を消費します)。
コードは次のとおりです。
nosql - リストをキー値データベースに格納
キーに関連付けられたリストをキー値データベースに格納する最良の方法を検索します (berkleydb
またはのようにleveldb
)
例: ユーザーとユーザーからユーザーへの注文があります。各ユーザーの注文 ID のリストを保存して、範囲選択 (ページネーション用) ですばやくアクセスできるようにしたいと考えています。
この構造をどのように保存しますか?
ユーザーごとにシリアル化可能な形式で保存したくありません。
リストが長くなる可能性があるため
店舗注文 ID をキーとしてユーザーごとに個別の db ファイルを考えていますが、これでは範囲選択の問題は解決しません。範囲でユーザー ID を取得したい場合はどうすればよいです[5000:5050]
か?
については知っていますが、またはredis
のようなキー値の実装に興味があります。berkleydb
leveldb
leveldb - leveldbのソースにあるmutex_.AssertHeld()の意味は何ですか
最近、leveldb のソースを読みました。ソース URL はhttps://leveldb.googlecode.com/files/leveldb-1.13.0.tar.gzです。
db/db_impl.cc を読むと、次のコードが表示されます。
それをファイルport/port_posix.hにたどると、次のことがわかります。
次に、ソース ディレクトリを grep しますが、AssertHeld() の他の実装が見つかりません。だからここに私の質問があります.mutex_.AssertHeld()はdb/db_impl.ccで何をしますか? THX
node.js - レベル DB データ ストアが毎回再作成される
私は Web アプリ開発に不慣れで、まだ基本を学んでいます。私は、nodejs とレベル db を使用した基本的なアプリケーションに取り組んでいます。Web アプリケーションを再起動するたびに、leveldb データ ストアが再作成され、格納されていたデータがすべて失われます。
私のコード例は次のとおりです。
私の理解では、データベースが欠落している場合にのみ作成されます。それ以外の場合は、既存のデータベースが使用されます。私の場合、それは起こっていません..何が間違っていますか?
go - level-db golang実装は既存の値を上書きしますか?
leveldb-g 実装を使用しようとしていますが、いくつか問題があります。
これが私の実装です(ここの別の回答に基づいています
そしてテスト:
どの出力:
2 番目のプロパティ ("property.different") を記述するようなもので、既にそこにある値を上書きします。私はばかげたことをしていると確信しています。どんな助けでも大歓迎です。
編集
findOne 関数にエラー処理を追加しました (@miltonb に感謝)。実際にエラーが発生していますが、どうすればよいかわかりません。
java - 関連するエンティティのリストを LevelDB に保存する方法
多くのエンティティ Product を持つエンティティ Client があるとします。これらの情報を LevelDB に保存する最善の方法を考えています。
これらのデータを xml/json にマーシャリングして LevelDB に永続化することを考えましたが、手間がかかり、良い方法ではないかもしれません。他の解決策を教えてもらえますか?
leveldb - leveldb が空かどうかを確認する方法
leveldb データベースの正確なキーを知らないとします。
3 つのキーを挿入して、キー範囲で GetApproximateSizes を使用しようとしましたが、結果は一貫してゼロです。
では、 leveldb にキーがあるかどうかをどのように確認しますか?