Redis互換で25倍高速とする「Dragonfly」が登場。2022年の最新技術でインメモリデータストアを実装

2022年7月12日

Redisやmemcachedに代表されるインメモリデータストアは、高速なデータアクセスを要求される場面で使われています。

このインメモリデータストアを2022年の最新技術を用いて設計、実装することで、Redis/memcached互換を実現しつつRedisの25倍高速とする「Dragonfly」が登場しています(開発元のアナウンスGitHub)。

fig

Redisやmemcachedが登場した十数年前と比べて、現在ではCPUのマルチコア化やI/Oの高速化、メモリの大容量化など、ハードウェア技術が大きく進化しています。

これらを最大限活用する設計と実装を取り入れることでRedisやmemcachedよりも大幅な高速化と高効率化を目指したのがDragonflyです。

採用した主な技術の1つ目が、マルチコアを活用するために採用されたマルチスレッドにおけるシェアードナッシングアーキテクチャです。これによりそれぞれのコアの能力を最大限に引き出しているとのこと。下記はGitHubのREADME.mdからの引用です。

we used shared-nothing architecture, which allows us to partition the keyspace of the memory store between threads, so that each thread would manage its own slice of dictionary data. We call these slices - shards.

われわれはシェアードナッシングアーキテクチャを採用しています。これにより、メモリストアのキー空間ごとにスレッドを分割し、各スレッドが辞書データのスライスを管理することができます。このスライスをシャード(shard)と呼んでいます。

さらに「Dash」と呼ばれるハッシュテーブルを採用したことで、TTLレコードに対する効率的な期限管理や、LRUやLFUなどよりも高いキャッシュヒット率をメモリのオーバーヘッドなしに実現し、優れたスナップショットアルゴリズムも実現したとのこと。

また、Dragonflyでは操作のアトミック性(操作全体が成功か失敗かどちらかで終わること)が保証されています。

下記が開発チームによるAmazon EC2のインスタンスを用いたベンチマーク結果の一部抜粋です。飛び抜けて高い6本のマーカーがどれもDragoflyによるもの。最大でRedisの25倍高速であり、Dragonflyは1インスタンスで数百万QPS(Query Per Second)を実現するとのこと。

fig

また、メモリ効率もRedisと比較してアイドル時で30%、最大時で3倍優れており、スナップショットも高速に終了するとしています。

Dragonflyは現時点で130のRedisコマンドとすべてのmemcachedコマンドの互換性を有しており、Redis 2.8のほとんどのAPIをサポート。

次はRedisからDragonflyへのレプリケーションとDragonfly同士のレプリケーションの実現による高可用性の実現を目指し、さらに多くのRedis APIのサポートを実装していくとしています。

追記 2022/13:30 当初タイトルに「オープンソース」と入れておりましたが、ライセンスのBSL 1.1はOSIで承認されたオープンソースライセンスではなかったためタイトルを変更しました。お詫びして訂正いたします)

このエントリーをはてなブックマークに追加
follow us in feedly


関連タグ NoSQL / データベース / インメモリデータベース



タグクラウド(β版)

クラウド / AWS / Azure / Google Cloud
コンテナ / Docker / Kubernetes
クラウドネイティブ / サーバレス
クラウド障害 / 運用・監視

プログラミング言語 / 開発ツール
JavaScript / Java / .NET / WebAssembly
HTML/CSS / Web標準

アジャイル開発 / スクラム / DevOps / CI/CD
ソフトウェアテスト・品質
ローコード/ノーコード開発

データベース / RDB / NoSQL / 機械学習・AI
Oracle Database / MySQL / PostgreSQL
Office / 業務アプリケーション

ネットワーク / HTTP / QUIC / セキュリティ
OS / Windows / Linux / VMware
ハードウェア / サーバ / ストレージ

業界動向 / 働き方 / 給与・年収
編集後記 / 殿堂入り / おもしろ

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本