Valkey 1周年:コミュニティフォークはいかにRedisを追い抜いたのか
(gomomento.com)- Redis Inc はソースクローズド化(SSPL への移行)の決定でコミュニティの信頼を揺るがしたが、Valkey フォークを中心に開発者コミュニティが結集し、活発なイノベーションと貢献が続いている
- Redis 8.0 は再びオープンソースに戻り、創設者 Antirez が復帰して新機能や最適化に参加するなど、両陣営とも急速な発展を見せている
- 最新のベンチマーク結果では、Valkey 8.1.1 は 8vCPU 環境で SET 性能が Redis 8.0 比で 37% 高く、p99 レイテンシもより短いことが確認された(GET 性能も 16% 優位)
- IO スレッド/コアピニングなどの実践的なチューニング手法により、Valkey はマルチスレッド環境で 3 倍以上のスループット向上とレイテンシ最小化を実現
- 実運用に近いベンチマークやチューニングのノウハウも共有され、ベンチマーク結果を解釈する際の注意点と実際の運用環境への適用方法も案内している
Redisのソースクローズド化とValkeyの登場
- 1年前、Redis Inc(旧 Garantia Data)が オープンソースライセンス変更(SSPL 導入)を行い、コミュニティとの信頼関係が悪化した
- その解決策として誕生したオープンフォーク Valkey は、分散システム、キャッシュ、リアルタイムデータ処理などで広く使われる技術資産となった
- Redis 側もその後、Antirez(創設者) の復帰、性能/機能強化、Redis 8.0 のオープンソース再移行などで信頼回復を試みている
Valkey 8.1 vs Redis 8.0:性能比較
- 同一の 8vCPU AWS c8g.2xl インスタンス、1KB アイテム/3M キースペース/500 接続条件で SET ベンチマークを実施
- Valkey 8.1.1: 999.8K RPS(p99 0.8ms)
- Redis 8.0: 729.4K RPS(p99 0.99ms)
- Valkey は SET で 37%、GET で 16% 高く、SET p99 は 30%、GET p99 は 60% 高速
- 6 個の IO スレッド導入時、Valkey は 239K → 678K RPS(2.8倍↑)、p99 1.68ms → 0.93ms(44%↓)
- Redis も IO スレッドで 235K → 563K RPS、p99 1.35ms → 0.84ms(40%↓)
マルチスレッド/コアチューニングの効果
- IO スレッドは 3 個以上から効果が大きく現れ、Valkey は 4 スレッド以降で Redis より大きな差 を見せる
- IRQ(割り込み)コアを 2 個に制限した後、Redis/Valkey を残りの 6 コアに固定(pinning)すると、さらに性能が向上
- Valkey: 832K → 999.8K RPS(コア/IRQ ピニング、CPU 使用率 80%)
- IRQ/アプリケーションコアの分離により、キャッシュ効率と tail latency を最小化
- 実際に Docker で
cpuset-cpus、--io-threadsなどを活用する例も提示
ベンチマーク再現と実践的なヒント
- 最新の AWS Graviton4(c8g.2xlarge) インスタンス、cluster placement group を活用
- コアピニング/IRQ 分離/接続数調整(400〜500 程度)で最大性能を実現
- キースペース/アイテムサイズ の調整も必要で、小さな値/キースペースは L3 キャッシュのヒット率を高める
- valkey-benchmark や rpc-perf(実利用により近い Rust ベースのツール)など、マルチスレッド対応ベンチマークツールの積極活用を推奨
docker run --network="host" --rm --cpuset-cpus="2-7" \ valkey/valkey:8.0.1 valkey-benchmark \ -h 172.31.4.92 -p 6379 -t SET,GET -n 100000000 -c 256 \ -r 3000000 --threads 6 -d 1024
性能測定の限界と注意点
-
ベンチマーク結果は実際の運用環境と異なる可能性がある
- 実際のワークロードには SET:GET の混在、負荷変動、TPS ターゲット、ネットワーク遅延など複合要因がある
- 接続数が急増すると、キュー遅延やスループット低下、tail latency 増加も観測される
- ベンチマークツール/オプション、ネットワークトポロジーなどによって結果は大きく変わり得る
主な成長過程とコミュニティの発展
Valkey プロジェクトはこの 1 年間、さまざまな面で活発に進化してきた
- GitHub などで 多くの開発者と企業の協業 のもと、機能追加、バグ修正、セキュリティ改善などを実現
- ドキュメント整備やユーザー支援にも注力し、新規ユーザーの参入障壁を引き下げた
- プロジェクト運営では 透明な意思決定 と コミュニティ投票 などが重視されている
業界における意義と技術的価値
Valkey には次のような強みがある
- ライセンス制約なしで誰でも利用できるため、クラウドサービスベンダー や 大規模 Web サービス企業 にとって魅力的な選択肢となる
- Redis と 高い互換性があり、移行も容易 である
- コミュニティ主導で開発されているため、多様な要件を反映しつつ迅速で継続的なアップデートが可能
結論と示唆
- Valkey は Redis フォークから 1 年で、技術・性能・コミュニティの各面で Redis を上回る成果を示した
- IO スレッド、コア/IRQ 分離、接続数調整などの実践的なチューニングノウハウとツールが鍵となる
- 性能は自動的についてくるものではなく、システム/ワークロード/インフラに合わせた継続的な最適化が不可欠
- 実サービス環境ではベンチマーク数値だけに依存せず、多様な状況を自らテストする実務的アプローチが必要
4件のコメント
Redisは多くの誤った判断をしてきましたが、働いたのは熊なのに金を受け取るのは調教師、という構図になっているのは残念ですね。
Facebookの「Redis User Group」に投稿された、
Valkey 8でどのような改善が行われたのかを整理した資料です。
https://www.facebook.com/groups/rediskorea/posts/3927030954110001/
上記の内容とあわせて読むと、理解の助けになると思います。
実際のところ、Valkey が何かを成し遂げたというよりは……向こうが勝手に自滅したという感じで……
Hacker Newsの意見