私は、C# でメモリ内キャッシュを設計する最初の段階にいます (これは Windows サービスとして実行されます)。運用が開始されると、これは平均で 100 万近くのオブジェクト (さまざまなタイプ) を保持すると予想されます。一部のキャッシュ項目は、最大 10MB (またはそれ以上) のサイズになる場合があります。さまざまなデータ ストレージ ソリューションを検討した結果、DataTable または SQLite インメモリ インスタンスをキャッシュ ストアとして使用することにしました。この時点で私の質問は
- この多数のレコードで DataTable のパフォーマンスはどのようになると思いますか?
- SQLite ソリューションを使用するのはやり過ぎだと思いますか? (SQLite は「データベース」として設計されているため、これらのデータベース関連のすべての配管作業が実際には必要ない場合があります)。
パフォーマンスは私にとって最優先事項です。
編集
いくつかの詳細を追加します。
- これらのキャッシュ アイテムは単なるキーと値のペアではなく、(現在のところ) さらに 2 つのプロパティ (ピン留めされたアイテムとロックされたアイテム) があり、それらの可用性に影響を与える可能性があります。すべてのルックアップには、3 つのプロパティすべてが含まれます。
- Memcached も検討されていますが、現時点では、主に SLA の制約により、これはオプションではありません (これについて言えるのはそれだけです)。
- すべてのアイテムのサイズが 10MB であるとは限りません。
- これらの項目の多くは、単なる数値や小さな文字列の値になると確信しています。
- RAM の可用性は問題ではないと思います。
前もって感謝します、ジェームズ