問題タブ [dets]
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.
erlang - データがメモリに収まらない場合の Erlang アプリケーションに適したデータ ストレージ バックエンド
Erlang アプリケーションのデータ ストレージを整理する方法について、考えられるオプションを調査しています。使用するデータは基本的に、短い文字列 ID でインデックス付けされたバイナリ BLOB の膨大なコレクションです。各ブロブは 10 Kb 未満ですが、多数あります。合計で最大200 Gbのサイズになると予想されるため、明らかにメモリに収まりません。このデータに対する一般的な操作は、ID による BLOB の読み取り、ID による BLOB の更新、または新しい BLOB の追加です。1 日の特定の期間ごとに、ID のサブセットのみが使用されるため、データ ストレージ アクセスのパフォーマンスはメモリ内キャッシュの恩恵を受ける可能性があります。パフォーマンスについて言えば、非常に重要です。目標は、コモディティ ハードウェア (EC2 VM など) で 1 秒あたり約 500 回の読み取りと 500 回の更新を行うことです。
ここで何を使うべきか提案はありますか? 私が理解しているように、detsは2Gに限定されているため(または4Gでしたか?)、問題外です。記憶喪失もおそらく問題外です。私の印象では、主にデータがメモリに収まる場合を想定して設計されています。このタスクに EDTK の Berkeley DB ドライバーを試してみることを検討しています。上記のシナリオで機能しますか?同様の条件で本番環境で使用した経験のある人はいますか?
erlang - Erlang DETSはどれくらいの大きさにすることができ、小さすぎる場合はどうすればよいですか?
必要なのはErlangの大きな永続的なルックアップテーブルだけで、detsはまさにそのように思えますが、次のような明確な答えが必要です。
- テーブル内のバイナリの合計サイズがどれだけ大きくなる可能性があるか。
- 各エントリの大きさ
- 最初の質問の答えが100G未満の場合の対処方法
clojure - Erlang の DETS / Persistent-Maps に相当する Clojure
DETS 2G テーブル サイズ制限がない場合を除いて、永続的なキー/値ストア用の Erlangs DETS に相当するものを探しています。
erlang - Erlang dets から txt へ
dets に保存されている情報を txt ファイルに書き込むにはどうすればよいですか?
ありがとうございました。
erlang - ほとんどの場合、DETS の読み取り専用使用
だから私はETSを使ってきました - うまくいきます。ただし、ルート データのキャッシュとして使用します。これは、モジュールのロード時にロードし、変更が行われたときに保存します (書き込みよりも読み取りの方がはるかに多い)。
私は、DETS を使用すると物事がずっときれいになると考えていました。テーブルの永続性の管理について心配する必要はありません。これは DETS の有効な使い方でしょうか? (サイズは問題ではありません。主に読み取りパフォーマンスの大幅な向上が懸念されます-すべてのデータは簡単にメモリに収まります)。
ets - データのインポートの例
dets:to_ets/2 で問題が発生しました
誰かが私にオンラインの例を教えてもらえますか? マニュアルページを見てきましたが、使用例は見当たりませんでした。グーグルで何も見つかりませんでした..
私の問題は、dets の作成ではなく、実際の dets:to_ets() 関数自体にあるようです。私はそれを自分でテストしましたが、問題ありません。
erlang - Erlang: dets を開いて監視下に置いておくべきですか?
私はデータを dets に出し入れしていますが、選択肢があります。次のいずれかを実行できます。
1) アクセスする直前に dets を開き、直後に閉じる、または
2) クラッシュが発生した場合に再オープンするスーパバイザに dets をリンクします。たとえば、次のようなスーパーバイザーを使用して gen-server を介して dets にアクセスします。
どれが最高ですか?それとも、まだより良い選択がありますか?
どうもありがとう、
LRP
erlang - テストが EUnit で失敗した場合、Dets はプロセスを開いたままにします
私はEUnitで遊んでいますが、それは素晴らしいですが、テストに失敗し、detsを適切に閉じていない場合、detsで問題が発生しています。ファイルはシェルでまだ開いており、作成されたため閉じることができません別のプロセス(テストを実行したとき)。
同じ問題に遭遇しましたか? EUnit で効率的に catch を試すことはできますか?
ご意見ありがとうございます。