boost::multi_index::multi_index_container
ハードディスク ストレージの場合、赤黒木 (のようなもの) に基づくマルチ インデックス コンテナーが必要です。すべてのデータは、メモリではなくハードディスクに保存する必要があります。
記載されている条件が満たされるようなオープンソースのコンテナはありますか?
ノート。私は使用しますC++
。
boost::multi_index::multi_index_container
ハードディスク ストレージの場合、赤黒木 (のようなもの) に基づくマルチ インデックス コンテナーが必要です。すべてのデータは、メモリではなくハードディスクに保存する必要があります。
記載されている条件が満たされるようなオープンソースのコンテナはありますか?
ノート。私は使用しますC++
。
インメモリソリューションを使用している場合は、メモリマップトファイルとカスタムアロケータを使用して永続ストレージを実現できます。
SQLiteはどうですか?ディスクをバッキング ストアとして使用でき、Boost Multi Index と同様に、データの複数のインデックスをサポートします。
私は何も知らないのではないかと心配しています。
ハードディスクストレージについては、STXXLを参照することをお勧めします。これは、ディスクにのみ収まるデータに適合した STL コンテナとアルゴリズムを提案しています。彼らは、基本的に可能な限りメモリにキャッシュし、可能な場合はディスクアクセスを遅らせることにより、よりスムーズな操作を可能にするために多くのことを実装しました。
これでマルチインデックスは取得できませんが、少なくともSTLは取得できます:)
次に、決定した場合は、マルチインデックスを移植して、STXXL によって提供される機能を使用できます。それらは、コンテナ自体からの IO アクセス / メモリ キャッシングを分離しています。
または、STL 準拠のコンテナーに基づいて、必要なものを単純に作成することもできます。