4

何億もの小さなレコードのキー バリュー ストアとして BerkelyDB を使用するプロジェクトがあります。

それが使用される方法は、すべての値がデータベースに挿入され、すべて単一のスレッドからシーケンシャル アクセスとランダム アクセスの両方を使用して繰り返されることです。

BerkeleyDB を使用すると、「ディスク上に保存することを意図していない」インメモリ データベースを作成できます。データベースが BerkeleyDB キャッシュに収まるほど小さい場合、ディスクに書き込まれることはありません。キャッシュよりも大きい場合は、オーバーフローを保持するために一時ファイルが作成されます。このオプションを使用すると、アプリケーションがデータベースを閉じるときにギガバイト単位の不要なデータをディスクに書き込むことがなくなるため、処理速度が大幅に向上します。

SSD でも BerkeleyDB の書き込みパフォーマンスが低すぎることがわかったので、LMDBに切り替えたいと思います。ただし、ドキュメントに基づくと、非永続データベースを作成するオプションはないようです。

永続性や同時アクセスをまったく気にしない場合、LMDB から最高のパフォーマンスを得るには、どの構成/オプションの組み合わせを使用すればよいですか? つまり、一時的なバッキング ディスク ストレージを備えた「メモリ内データベース」のように機能させるには?

4

2 に答える 2