私たちは、次のプロパティを持つ SSD に基づくキー値ソリューションに取り組んでいます。
- スループット: 10000 TPS; 50/50 のプット/ゲット。
- レイテンシ: 平均 1 ミリ秒、99.9 パーセンタイル 10 ミリ秒
- データ量: ~10 億の値、それぞれ ~150 バイト。64 ビット キー。ランダム アクセス、データの 20% が RAM に適合
さまざまな Linux IO スケジューラ、ext3/xfs ファイル システムを使用して、KyotoCabinet、LevelDB、および RethinkDB をコモディティ SSD で試しました。Rebenchを使用して多くのテストを行いました。そして、すべての場合で次のことがわかりました。
- 読み取り専用のスループット/レイテンシーは非常に優れています
- 全体を通して書き込み/更新のみは中程度ですが、レイテンシの高い外れ値が多数あります
- 読み取り/書き込みワークロードが混在していると、ブロック デバイスに (ファイル システムをバイパスして) 直接アクセスする場合でも、スループット/レイテンシーに壊滅的な振動が発生します。
以下の図は、KyotoCabinet のこのような動作を示しています (横軸は時間で、読み取り専用、混合、更新のみの 3 つの期間が明確に表示されます)。
問題は、SSD を使用して記述された SLA の低レイテンシーを達成することは可能ですか? また、推奨されるキーと値のストアはどれですか?