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 ドライバーを試してみることを検討しています。上記のシナリオで機能しますか?同様の条件で本番環境で使用した経験のある人はいますか?