.NET用の永続的なKey-Valueストレージを探しています。要件は次のとおりです。
- ストレージは、文字列で識別され、バイト配列である値を持ついくつかのオプションの(名前付き)プロパティを持つオブジェクトに使用されます。SQLソリューションの場合、1つの文字列-> idテーブル、および複数のid->blobテーブルとしてモデル化します。
- 予想されるデータ量は数メガバイトです(現在、10 Mbを超える可能性は低いですが、100 Mbにスケールアップすると便利です)
- 軽量-できれば単一アセンブリで、外部アプリケーションなし
- 読み取りは書き込みよりも頻繁で、少なくとも100倍です。
- 高速な読み取り/書き込みアクセス-データの更新に対するメモリ内ストレージと遅延書き込みを期待しています。定期的に非同期書き込みを生成できます。ストレージがそれを行う場合はボーナスポイントが発生します。
- アトミックI/O-書き込み中にプロセスが終了した場合でも、データベースが破損することはありません。それ以外の場合、データは重要ではありません。つまり、追加の冗長性は必要ありません。
現在、SQLiteはここで機能すると思います。ただし、それは少しやり過ぎのようです。SQLの完全なサポートではなく、Key-Valueストレージのみが必要です。bdbやlibdb-dotnetバインディングについても聞いたことがあります。これはより軽量のようですが、パフォーマンス/一貫性の特性はわかりません。
誰かがここで何かをお勧めできますか?追加のリファレンスを歓迎します(つまり、.NET Frameworkに仕事をすることができるものがあれば素晴らしいでしょう)、SQLiteまたはlibdb-dotnet(または一般的にはbdb)または自家製のソリューション(痛みがない場合)の経験もあります。