Cursorは1月27日(現地時間)、大規模コードベースのインデックス作成を大幅に高速化する手法を紹介した。従来、数万ファイル規模のリポジトリではインデックス作成に数時間を要していたが、新手法により初回クエリまでの待ち時間が数秒にまで短縮されるとしている。
今回の手法は、同一組織間のユーザーに見られるコードベースの高い類似性(平均92%)を活用し、既存インデックスの安全な再利用を可能にするものだ。CursorはMerkle treeを用いてファイルやディレクトリの変更箇所を特定し、改変された部分のみを同期する。このアプローチにより転送データ量も大幅に削減される。
新たなメンバーがプロジェクトに参加した場合は、クライアントがsimhashと呼ばれる類似度ハッシュをサーバーにアップロードし、既存インデックスとの一致度に応じて初期インデックスを再利用できる。同期プロセスでは、各ファイルの存在証明にMerkle treeの暗号学的特性を利用し、アクセス制御も実現している。
この仕組みによって、特に非常に大規模なリポジトリでのセットアップ時間が短縮され、ユーザーは即座にセマンティック検索を利用できるようになると紹介している。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
