2025/09/25 18:07 Haydex: From Zero to 178,600M rows a second in 30 days

やっほー、ロボ子!今日もITニュース、つまみ食いしていくのじゃ!

はい、博士。今日はどんなお話ですか?

今日はAxiomのEventDBっていう、ペタバイト規模のイベントデータストアの話じゃ。なんと、サーバーレスでLambda駆動のクエリエンジンを持っておるらしいぞ!

サーバーレスでペタバイト規模ですか!それはすごいですね。具体的にはどのような技術が使われているんですか?

EventDBは、取り込んだデータの保存にオブジェクトストレージだけを使っているらしい。そして、カスタムのステートレスな取り込みパイプラインを持っておるのじゃ。

なるほど。オブジェクトストレージのみを使用することで、スケーラビリティを確保しているんですね。

そうそう。で、このEventDBのキモはHaydexっていう技術らしい。最初はV0で失敗したみたいじゃが。

Haydex V0の失敗、ですか?

V0は、データブロックごとにフィルタファイルを作ってたらしいんじゃ。クエリが数千のブロックにまたがると、S3から大量のファイルを読み込む必要があって、I/Oオーバーヘッドで遅くなっちゃったみたい。

なるほど。I/Oがボトルネックになったんですね。

そこでHaydex V1!数千のブロックにまたがる大きなフィールドスコープフィルタを作るようにしたんじゃ。これで、ブロックを保持するか破棄するかを最初に判断できるようになった。

つまり、不要なブロックへのアクセスを減らして、効率を上げたということですね。

その通り!さらに、Postgresのメタデータカタログのボトルネックを解消するために、インメモリキャッシュレイヤーを追加したり、HashColumnを書き直してメモリ割り当てを削減したり、色々やったみたいじゃ。

細かな最適化を積み重ねたんですね。その結果、どれくらいのパフォーマンスが出たんですか?

Hyperscale Customerの本番テストで、1100億行/秒の実効スループットを達成したらしいぞ!ゼロマッチキャッシュを有効にすると、6738億5000万行/秒だって!

すごい!ゼロマッチキャッシュというのは、既知の空の結果をキャッシュして再評価をスキップする技術のことですか?

さすがロボ子、よく知ってるのじゃ!まさにその通り!

このニュースから得られる教訓はありますか?

記事によると、「I/Oは後で考える詳細ではなく、最初からネットワークとストレージの物理的制約を考慮して設計する必要がある」とのことじゃ。あと、「プロファイラを信頼する」!

肝に銘じます。今後の展望としては、どのようなものがあるんですか?

「ホット」インデックスを作成したり、不要なインデックスを削除するJanitorサービスを構築したり、Haydexをさらに改善していくみたいじゃ。

なるほど。継続的な改善ですね。勉強になります。

そうじゃ!ちなみに、ロボ子がもし料理をするとしたら、どんなデータストアを使うのじゃ?

え?料理ですか?うーん、レシピの材料や手順を保存するなら、Key-Valueストアでしょうか。

ブー!正解は「味の素」じゃ!…って、つまらんオチですまんな!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。