PlanetScaleのNekiが毎秒1億1850万クエリを達成
118M Queries per Second on Neki

PlanetScaleはNekiのプラットフォームプレビュー公開を記念し、毎秒100万クエリのベンチマークを実施。5シャードで目標を即達成したため、512シャードまで拡張し、毎秒1億1853万クエリを16分間持続。データ量は1.22PiB、p99レイテンシはルーターで6.06ms、クライアントで13.95ms。シャード数に比例してスループットが線形に伸びることを実証した。
シャードが10倍になればスループットも10倍。それがまた10倍に。
HNでの議論
41- farazbabar
2015年、私はわずか数ノードで毎秒100万の読み書きクエリを達成でき、複数のデータベースでこれをテストしました。当時はまともなネットワークチューニングとAWS内でのノード配置が必要でしたが、記憶が正しければ1回の実行で約10〜15ドルしかかかりませんでした。もちろん、そのようなパフォーマンスをスケールさせる問題はありますし、これに注がれたエンジニアリングの努力は評価したいと思いますが、これは高すぎます。これは、私のチームの一つがオフラインデータをわずか数テラバイト処理するためにHadoopを使い、全体をわずか数時間で処理できた時のことを思い出させます。デモの間にそれが過剰だったと伝える勇気も心もありませんでしたが、慎重なネットワーク計画とストレージ最適化により、オフラインファイルからすべてのシグナルをほんの数秒で抽出できる非常にシンプルな(そして小さな)コードを書き、翌週にデモ/ランチ&ラーンのために彼らを招待しました。
- jamesblonde
2015年、MySQL Cluster(NDB Clusterエンジン)はコモディティハードウェアで毎秒2億トランザクションをベンチマークしました[ref]。それはスナップショット分離ではなくread-committedトランザクションでしたが、それでも印象的です。NDBは現在RonDBになりましたが、依然としてノンブロッキング2相コミットプロトコルに基づいており、GPL-v2です。
RonDBは現在infinibandをサポートしているので、毎秒10億オペレーションを突破するはずです。参考までに、それは毎秒1 GHzのトランザクションです。
[ref] https://www.slideshare.net/frazerClement/200-million-qps-on-...
- stephenlf
Casey MuratoriがTyler Cloutier(SpacetimeDBの創設者兼スポークスマン)にインタビューしたのを見ました[1]。Tylerのポイントの一つは、キャッシュラインを備えた現代のCPUアーキテクチャを考えると、分散データベースはキャッシュ最適化された単一ノードデータベースのスループットを上回るために少なくとも50〜100ノードにファンアウトする必要があるということです。
その議論の裏側を見るのはクールです。PlanetScaleは「ワークロードを100ノード以上にファンアウトするとどうなるか?」という問いに答えています。
両方のテクノロジーに居場所があります。とてもクールなものです。
- danbruc
87.3%がキャッシュから提供されています。それは、まったく同じクエリが以前に実行されたためにキャッシュに存在する結果を返したということですか?おそらく、毎秒何百万ものクエリを処理する必要があるなら、多くの繰り返しクエリが見られる可能性が高いので、依然として関連する結果でしょう。しかしその時点では、クエリのパフォーマンスよりもキャッシュのパフォーマンスを測定していることになります。しかし、標準化されたクエリベンチマークを実行しない限り、単一の毎秒クエリ数はそれほど情報量がありません。なぜなら、クエリの複雑さ、ひいては実行時間は何桁にも及ぶ可能性があるからです。IDで名前を検索することと、17のテーブルを結合して10億行を集計することは、どちらも単一のクエリです。
- cbg0
同じパフォーマンス/ストレージをベンチマークとして、ChatGPTで簡単に計算してみました:
Neki 1プライマリ + 2レプリカ:約$5.0M/月(AWSの請求書のみ)
Google Spanner(3レプリカ内蔵):約$3.85M/月