Solr 1.3と1.4の検索パフォーマンス比較
TopHatenarとBlogopolisでは現在、全文検索用途にApache Solr 1.3を使っていますが、去年11月にSolr 1.4がリリースされたので、近いうちに1.4に移行したいと思っています。
そこで、1.3と1.4の検索パフォーマンスにどのくらい差があるのか、TopHatenarで収集しているブログの本文データを使って、以下の条件で計測してみました。
計測は、事前にSolrをウォームアップし、キャッシュが十分に効いた状態で行いました。
- Solrサーバ環境
- インデックス
- ドキュメントの内容: ブログ記事(URL, タイトル, 本文)
- ドキュメント数: 約30万
- インデックスサイズ: 2.1GB
- 検索方法
計測結果
スループット(QPS, 1秒あたりのクエリ処理数)は、以下のグラフのようになりました。
レイテンシ(クエリの応答時間)の平均値は、以下のグラフのようになりました。
今回の条件下でSolr 1.3と1.4を比較すると、接続数が少ないうちはほとんど同等の検索パフォーマンスを示していますが、並列性が高くなると、圧倒的に1.4の方が速くなりました。64スレッドの場合、10行取得(最初の10件まで検索)時のスループットは3倍、レイテンシは10倍も優秀です。1000件取得になると、レイテンシは1.3に少し劣るものの、スループットはやはり3倍以上優秀です。
この大幅なパフォーマンス向上がSolr自身によるものか、Solrで内部使用しているLuceneが2.4-devから2.9に上がったことによるものか自分には分かりませんが(多分両方)、高負荷な環境でSolr 1.3を運用している場合、1.4への移行を検討した方が良さそうです。