MySQL in an Enterprise Search Architecture

by Clay Webster, Associate VP of Platform Infrastructure, CNET Networks, Inc.

CNETのVPによるMySQLを用いた検索システムの事例紹介:

  • きっかけ:2004年,それまで使っていた検索システムのベンダーがそのプロダクトのサポートを打ち切った.リプレースにかかる費用は莫大.そこでCNETはプロプラエタリ圏から脱することを決意.
  • 必要だったこと:高性能なソートとテキスト検索,コンテンツのアップロードと配布を素早く行うこと,HTTPとXMLを用いたスタンダードなサービス,適切なキャパシティとスケーラビリティ,費用があまりかからない,素早く開発できること
  • MySQLを選んだ理由:Fulltext検索とソートがGood.レプリケーションが簡単.Robust and Customer-Hardened(技術的な評価) / 費用があまりかからず,習得も簡単(経済的な評価).
  • ATOMICSプロジェクト発足:Apache TO MySQL In CNET Search
  • Apache2とMySQL4で構築.Apacheにはmod_atomicsとmod_mysql_poolモジュールを追加.Linux Redhat EL3.0 64bit Opteron.この環境でさらにMySQLレプリケーションを使用.
  • Apacheを選んだわけ:HTTPだから(もちろん),XML,ログ出力,ステータス? その他諸々.
  • クエリ実行経路:AppServerのJavaアプリケーションからHTTP-GETでリクエストを受けてAtomic Query ServerがXMLでレスポンスを返す.あるいはsearch.comからHTTP-GETでリクエストを受けてXMLで返す.
  • 初回DB移行:データインポート
  • 増分についてのDB移行:JDBC
  • 強み:検索速い.レプリケーション使っているので並行検索できる.ベンダーに高い金を払わずに済んだ.
  • 強み:データベース(変更が即座に反映され,柔軟性が高く,クエリは透過的),アップグレード可能,クラッシュしない
  • 重要ポイント:Extra Work and Thought, "Natural Language" vs BOOLEAN MODE
  • 重要ポイント:Complexity,Space,and Speed.Retrieval Blind Spots(記号系文字が使えない?).
  • 結論:
-Atomics is a workhorse and very capable
-retrieval issues
-meets >80% our search needs
-scoring algorithms - and boolean mode vs normal mode
-versy flexible

感想.レプリケーションを何台やっているだとか,システム全体のノード構成だとか,あるいは数値的データについては話がなかったのが残念.