次の条件に一致するデータベースを探しています。
- 非永続的である可能性があります。
- DB のほぼすべてのキーを 3 ~ 6 時間に 1 回更新する必要があります (合計サイズが 100Gb の 1 億以上のキー)
- キー (または主キー) でデータをすばやく選択する機能
- これは DBMS である必要があります (そのため、LevelDB は適合しません)。
- データが書き込まれるとき、DB クラスターはクエリを処理できる必要があります (ただし、単一ノードはブロックできます)。
- メモリ内ではありません – データセットは RAM の制限を超えます
- 水平スケーリングとレプリケーション
- すべてのデータの完全な書き換えをサポート (MongoDB はデータの削除後にスペースをクリアしません)
- C# と Java のサポート
このようなデータベースを使用する私のプロセスは次のとおりです。4 ~ 6 時間ごとに 1 億レコード (50 GB) のデータを生成する分析クラスターがあります。データは「キー - 配列[20]」です。このデータは、フロントエンド システムを介して、1 秒あたり 1 ~ 10,000 リクエストのレートでユーザーに配信する必要があります。平均して、データの約 15% のみが要求され、残りのデータは、次のデータ セットが生成されるときに 4 ~ 6 時間で書き換えられます。
私が試したこと:
- モンゴDB。データストレージのオーバーヘッド、高い最適化コスト。
- レディス。完璧に見えますが、RAM に制限があり、データがそれを超えています。
問題は、Redis のようなもので、RAM サイズに制限されていないものはありますか?