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