GitHub、膨大なコードに対応する検索エンジン「Blackbird」を解説

Liam Tung (Special to ZDNET.com) 翻訳校正: 編集部

2023-02-10 09:56

 プログラミング言語「Rust」の人気は高まり続けている。そんな中、開発者プラットフォームを手掛けるGitHubは米国時間2月6日、Rustで一から記述したコード検索エンジン「Blackbird」の開発動機などについて解説した。

提供:Luis Alvarez/Getty Images
提供:Luis Alvarez/Getty Images

 GitHubは、ユーザーがさまざまなフォーラムを探し回って求めている答えを得るのではなく、現時点でベータ段階のBlackbirdを利用するようになってほしいと考えている。

 開発者向けの知識共有サイトを運営するStack Overflowによると、Rustは多くの開発者が最も愛している(ただし最も普及しているというわけではない)プログラミング言語だという。

 Rustは通常の場合、CやC++で記述されている既存プロジェクトに新機能を追加する際や、アプリの構築時よりシステムプログラミングに採用されることが多いため、新たなプロジェクトでRustが採用されるというのは興味深い。ただ、Microsoft Azureの最高技術責任者(CTO)Mark Russinovich氏は2022年に、Rustはメモリー安全性を備えているため、全ての新規プロジェクトはCやC++ではなくRustを採用すべきだと明言していた。

 しかし、GitHubは「Apache Cassandra」や「Apache Solr」「Elasticsearch」といった数々のオープンソースソリューションを利用できるにもかかわらず、なぜ検索エンジンを一から構築するのだろうか。

 GitHubのTimothy Clem氏は「何もない状態から検索エンジンを構築するというのは、一見すると疑問符の付く意思決定に感じられる。なぜそのような道に進むのだろうか?出来合いのオープンソースソリューションが既にたくさんあるのではないだろうか?なぜ新しいものを構築するのだろうか?」と記している。

 同氏の手短な答えは、コードの検索に利用できる一般的なテキスト検索製品が見つからなかったというものだ。

 同氏は「(既存製品の)ユーザーエクスペリエンスは貧弱であり、インデックス作成は遅く、ホストするにも多大なコストがかかる。より先進的でコード(の検索)に特化したオープンソースプロジェクトも存在しているが、GitHubの規模にはまったく対応できない」と記している。

 GitHubは2011年にElasticsearchをデプロイしてみたが、当時に収容していたおよそ800万件のリポジトリーのインデックスを作成するのに「数カ月」もかかったと同氏は記している。GitHubは今日、2億件を超える動的なコードのリポジトリーをサポートしている。

 Blackbirdは現在、ほぼ4500万件のリポジトリーに対する検索をサポートしている。そのカバレージは部分的だが、それでも115TB分のコードと、PythonやJava、JavaScriptで記述されたプログラムに関する155億件のドキュメントを検索できる。

 GitHubのソフトウェアエンジニアリング担当バイスプレジデントであるPavel Avgustinov氏によると、Rustで記述されたカスタム検索エンジンであるBlackbirdは、より効率的に動作し、「重複データの排除によってストレージを大幅に節約するとともに、シャード間の均質な負荷分散を保証するようになっている」という。

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. クラウドコンピューティング

    標準化されたOS「Linux」で実現するIT環境の効率化、検討すべき9つの事項とは

  2. クラウドコンピューティング

    CentOS Linuxアップデート終了の衝撃、最も有力な移行先として注目されるRHELの今

  3. クラウドコンピューティング

    調査結果が示す「Kubernetes」セキュリティの現状、自社の対策強化を実現するには?

  4. OS

    Windows 11移行の不安を“マンガ”でわかりやすく解消!情シスと現場の疑問に応える実践ガイド

  5. 運用管理

    AWSに移行することのメリットと複雑さ--監視ソリューションの導入から活用までを徹底解説

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]