Claude CodeがPostHogのSQLパーサーを70倍高速化 – プロパティベーステストと並列エージェントの仕組み

PostHogのエンジニアRobbie Coomberは、複数の長時間実行Claude Codeセッションを並行して使用し、既存のANTLR生成C++パーサーに対して約70倍の高速化を達成しました。新しいパーサーは手書きのRustコード16K行と、ツールおよびテスト用の5K行から構成されています。
なぜ書き換えたのか?
PostHogは、ユーザーのSQLをClickHouse用のSQLに変換し、論理データビューや最適化を実現しています。パーサーはSQLを抽象構文木(AST)に変換し、後段のアクセス制御や最適化で利用します。旧ANTLR生成パーサーは、汎用的なグラフウォーキングインタプリタ(ATN — NFA with a stack)を採用し、任意の動的先読みを行っていたため、C++であるにもかかわらず低速でした。手書きの再帰下降パーサーは本質的に高速です。
アプローチ:並列エージェントセッション+オラクル駆動TDD
- 2つのアプローチを並行してテスト:ひとつはパフォーマンス重視(Pratt式解析を用いた再帰下降)、もうひとつは正確性重視(ANTLRの振る舞いを明示的なコードで模倣)。両方とも同等に機能しました。
- 既存のC++パーサーをオラクルとして使用し、不一致を検出—SQLの入力に対してパーサー間の差異を発見し、新しいパーサーを修正、これを繰り返しました。
- プロパティベースのテストで無数のSQLバリエーションを生成。例えば
SELECT SELECT FROM FROM WHERE WHERE AND AND(有効なSQL)のテストも含まれます。 - 新しいパーサーは現実的なクエリではオラクルと一致し、差異は病的なクエリでのみ発生します。
結果
70倍の高速化を達成。最終的なパーサーは、必要な箇所でのみ先読みとバックトラッキングを行う再帰下降設計です。Coomberは、AIなしではこのような手書きパーサーの作成と保守に数ヶ月を要し、労力に見合わなかっただろうと述べています。Claude Codeによって実用的になりました。
重要な教訓
この事例は、並列AIコーディングセッションとプロパティベースのテスト、オラクル駆動のテスト開発を組み合わせることで、パフォーマンスクリティカルなコードを劇的に改善できることを示しています。エージェントを使用してコアインフラを書き換え、自動化された不一致検出に依存するこの手法は、他のプロジェクトでも再利用可能です。
📖 元記事を読む: HN AI Agents
👀 See Also

CodeLedgerとVibecopのアップデート:マルチエージェントAIコーディングのコストと品質追跡機能
CodeLedgerは現在、ローカルのセッションファイルを読み取ることで、Claude Code、Codex CLI、Cline、Gemini CLIにわたる支出を追跡します。一方、Vibecopは新しいLLM専用検出器と複数のAIコーディングツール向けのワンコマンドセットアップを追加し、自動化された品質チェックを提供します。

ビーグルSCM:ASTツリーを保存するソースコード管理システム
Beagleは、バイナリブロブではなく抽象構文木を格納する実験的なソースコード管理システムで、BASONと呼ばれるCRDT風のデータ形式を使用し、RocksDBなどのキーバリュー型データベースをバックエンドストレージとして利用します。

コンテキストモードMCPサーバーがClaudeのコードコンテキスト使用量を98%削減
コンテキストモードは、Claude Codeのコンテキスト消費量を315KBから5.4KBに削減するMCPサーバーです。ツール出力をサンドボックス化することで実現し、10の言語ランタイムをサポートし、全文検索機能を備えたナレッジベースを含みます。

KubeShark: Kubernetesスキル(Claude Code / Codex対応)による誤ったYAML検出
KubeSharkは、Claude CodeとCodex向けの障害モード優先型Kubernetesスキルで、非推奨API、誤設定されたプローブ、壊れたセレクタ、その他のAIが生成しがちな一般的なミスを本番環境に到達する前にキャッチします。