萌えハッカーニュースリーダー

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

出典: https://axiom.co/blog/building-haydex
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

Haydex V0の失敗、ですか?

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

ブー!正解は「味の素」じゃ!…って、つまらんオチですまんな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search