大きすぎたり分散したりしない、ディスク上のキー値ストアが必要です。ユースケースは次のとおりです。
- 完全な DB のサイズは数 GB になります
- キーと値の両方が一定のサイズです
- その一定のデータベース。データベース全体が書き込まれたら、それ以上エントリを書き込む必要はありません (または非常にまれにしか書き込みません)。
- キーは予測できない順序でアクセスされます
- 複数のプロセスによる同時読み取りのサポートは必須です。
- リーダーはタイトなループで数百万のキーにアクセスするため、非常に高速である必要があります。したがって、連想配列をループするのと同じくらいパフォーマンスにできるだけ近づける必要があります(
STL's std::map
たとえば) - 理想的には、使用する RAM の量を設定できるようにする必要があります。通常は、数百 Mb を使用する必要があります。
- C または C++ で書かれています。既存の python 拡張機能は大きなプラスになりますが、自分で追加できます
良い選択肢のようcdb
にgdbm
見えますが、もっと適切な選択肢があるかどうかを知りたいだけです。関連するベンチマークまたは関連する逸話的な証拠へのポインタも高く評価されます。