Twitter、検索用バックエンドをLuceneに入れ替え。さらなるスケーリングを視野に安定稼働中

次の記事

Adobe、AIR for Androidを発表。真価は今後発表されるアプリケーション待ち

利用者が新しいインタフェースや、さらに未来のTwitterについて語る中、Twitterは隠密裡にある行動を行っていた。数日前のブログ記事にて、検索システムのバックエンドを入れ替えた旨を発表した。

入れ替えにあたって目標としつつ、同時に非常に困難であったのは旧システムを円滑に新システムで置き換えることでした。入れ替えにあたってシステムをダウンさせたり、検索結果に不整合が出てしまうことは避けたいと考えていたのです」と記事にある。この目標はうまく達成できたのではなかろうか。すなわち利用者の側からは、今回のシステム変更についてほとんど何の発言もなかった。誰も変更に気づきすらしなかったようだ。

Twitterはこれまで、依然として買収したSummizeの技術を利用してきていた。買収時点におけるSummizeの技術水準は非常に高いものであったが、当時のTwitterは小規模なサービスだった。以来、Twitter自身の規模は比較にならないほど巨大化している。「旧来のMySQLベースのシステムで現状を賄うのが次第に難しくなってきたのです」としている。これがシステム変更の要因だ。

では新たに採用したシステムはどのようなものだろうか。「Twitterではオープンソースのプロダクトを活用しており、今回もJavaで記述された検索エンジンライブラリのLuceneを利用することにしました」とのこと。但しリアルタイム検索を実現するために書き換えた部分も多いようだ。どのような点で書き換えが必要になったのだろうか。

新たなシステムに寄せる期待はかなり大きなものでした。Twitterの現状を言えば1,000TPS(tweets/sec)で、12,000QPS(queries/sec)つまり1日あたり10億件の検索に対応する必要があり、従来のシステムでは限界を迎えつつありました。新たなシステムは数年間にわたって使い続けるつもりなので、現在のトラフィックの少なくとも数倍の負荷には耐えてくれることが必要でした。

さらに、ツイートが投稿されてから10秒以内にインデックス化を完了することも目標にしていたのだと言う。

今回Twitterで行ったLuceneに対する変更は、近いうちにオープンソースとしてフィードバックする予定であるとのこと。

冒頭にも記したが、新たなシステムはすでに数週間に渡って稼働しており、どうやらうまく切り替えられたようだ。またTwitterでの評価によれば、新システムの負荷は5%程度に収まっているとのこと。インデックス化作業も、現在の50倍程度のツイート数に対応できるようになっているらしい。すなわちさらなるスケーリングが可能になったということだ。

関連記事(未訳): A Billion Queries A Day Later, Twitter Finally Working On Search Again

原文へ

(翻訳:Maeda, H)