Twitter、リアルタイム検索をLuceneで構築。50倍高速に!
Twitterのリアルタイム検索機能が、オープンソースのLuceneベースになったと、Twitter Engineeringブログへのエントリ「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!
楽しみに待つことにしましょう。
あわせて読みたい
クラウドでSIerのビジネスはどう変わるか? 今年もセールスフォースの展示会場に飛び込んで聞いてみた
≪前の記事
国勢調査のシステムはセールスフォースのクラウド採用。開発期間は数週間(修正あり)