Linux Foundationは、Redisの後継として開発されたオープンソースのインメモリ・ストレージ・ソリューションであるValkey 8.0の一般提供を発表した。スロットごとにディクショナリを導入し、キーをディクショナリエントリに直接埋め込むことで、開発者は最大20%の容量増加を達成し、ノードごとに追加のキーを保存可能になる。
BSDライセンスでリリースされたValkeyは、キャッシング、メッセージキュー、プライマリデータベースなど、さまざまなワークロードをサポートする高性能なキー/バリューデータストアである。Valkeyは、スタンドアロン・デーモンとしても、レプリケーションや高可用性オプションのあるクラスタとしても動作する。Valkeyのシニア・ディベロッパー・アドボケイトでありオープンソースリーダーであるKyle Davis氏は、次のように書いている。
これはメジャーバージョンですが、Valkeyはコマンドセットの互換性に真剣に取り組んでいます。Valkey 8.0.0では、既存のコマンド構文やそのレスポンスに後方互換性のない変更は加えていません。(中略)このバージョンでは、ソフトウェアがスレッドを使用する方法に変更が加えられているため、最高のパフォーマンスを達成するためにクラスタのインフラを再評価したくなるかもしれません。
Valkeyコミュニティからの最初のメジャーリリースは、RedisがSSPLv1ライセンスに切り替わってからわずか5ヶ月後のことだ。InfoQが以前報じたように、その制限的な性質から元メンテナによるフォークを促した。AWSのプリンシパルソフトウェアエンジニアでValkeyプロジェクトのメンテナであるMadelyn Olson氏は次のようにコメントしている。
Redisはほぼ6ヶ月前にオープンソースから離れましたが、元RedisのコントリビューターとSlackでどうするか議論したのを今でも鮮明に覚えています。(中略)我々は最近50万コンテナプル数を達成し、サーバとクライアントのエコシステム全体で100人以上からコントリビュートされ、40以上の組織からサポートされている。
メモリ処理の改善について、AWSのソフトウェアエンジニアでValkeyのコントリビューターでもあるHarkrishn Patro氏は次のように説明している。
最初の最適化は、スロットごとの辞書(合計16,384個)で、各辞書は与えられたスロットのデータを格納する。この単純化により、Valkey 8ではスロットとキーのマッピングのための追加メタデータを維持するコストが不要になった。与えられたスロットのすべてのキーを反復処理するために、エンジンは単に与えられたスロットの辞書を見つけ、その中のすべてのエントリを走査する。
その他の最適化には、新しいマルチスレッド・アーキテクチャと辞書エントリへのキーの埋め込みが含まれ、余分なメモリ検索を排除し、キーごとに8バイトのメモリオーバーヘッドを削減する。
出典:Valkeyブログ
メモリ効率をさらに向上させるため、チームはよりコンパクトなメモリレイアウトでメイン辞書をオーバーホールし、オープンアドレス方式を導入する計画について議論している。Googleのデータベース担当副社長兼GMであるAndi Gutmans氏は次のようにコメントしている。
Valkeyの技術革新のスピードは素晴らしいです!オープンソースの歴史上、もっとも成功したフォークになりそうです!
Perconaの最近の調査によると、Valkeyは再ライセンス論争を経て、Redisに代わる主要なオープンソースとして浮上している。
Redisをデプロイしている回答者の70%以上が、Redisのライセンスが変更されたことで、代替案を探す気になったと答えている。そして、DragonflyDB、KeyDB、Skytableなど、すでに市場で利用可能なオプションがいくつかあるが、Redisのかつての市場支配力をも奪う可能性がもっとも高いのはValkeyのようだ。
Valkey 8.0は現在ダウンロード可能だ。