Twitter、リアルタイム検索をLuceneで構築。50倍高速に!

2010年10月8日

Twitterのリアルタイム検索機能が、オープンソースのLuceneベースになったと、Twitter Engineeringブログへのエントリ「Twitter's New Search Architecture」で紹介されています。

The Twitter Engineering Blog: Twitter's New Search Architecture

これまでTwitterはリアルタイム検索にMySQLベースの独自システムを利用してきましたが、規模の拡大が難しくなってきたため、6カ月前に新システムの構築を決定。オープンソースの検索エンジンであるLuceneを選択したとのことです。

従来の50倍も高速に!

検索エンジンに対する要件は以下のように非常に厳しいものでした。

Our demands on the new system are immense: With over 1,000 TPS (Tweets/sec) and 12,000 QPS (queries/sec) = over 1 billion queries per day (!)

このためTwitterではLuceneに対して性能向上のための変更を行い、おもに以下の点について改善をしたとのこと。

  • significantly improved garbage collection performance
    ガベージコレクション性能の飛躍的な改善
  • lock-free data structures and algorithms
    ロックフリーなデータ構造とアルゴリズム
  • posting lists, that are traversable in reverse order
    逆順にトラバーサル可能なポスティングリスト
  • efficient early query termination
    効率的な早期問い合わせの終了

これらの改善はLuceneに対してフィードバックされます。

この新しい検索システムは、リソースのわずか5%しか使わず、しかも従来の検索の50倍もの速度でインデックス化を実現し、全く問題なく動作しているそうです。

We estimate that we’re only using about 5% of the available backend resources, which means we have a lot of headroom. Our new indexer could also index roughly 50 times more Tweets per second than we currently get! And the new system runs extremely smoothly, without any major problems or instabilities

Twitterはこれにより、単に高速なリアルタイム検索を提供するだけでなく新サービスの展開も考えている模様。

the new system is extremely versatile and extensible, which will allow us to build cool new features faster and better. Stay tuned!

楽しみに待つことにしましょう。

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本