技術陣が振り返る「Yahoo!知恵袋」開発の難所

2005/11/15

 「基本的には技術的に難しいことはやっていない。ただ、Yahoo! JAPANのサービスとしてふさわしいサービスレベルは維持しないといけないと考えた」。ヤフーが11月7日に正式版を公開したQ&Aサイト「Yahoo!知恵袋」の開発者、ヤフー リスティング事業部 技術 門川百合子氏は1年7カ月におよんだベータ開発期間をこう振り返った。

 知恵袋のサービスは韓国のYahoo! Koreaがベース。ヤフーのリスティング事業部 検索企画室 Yahoo!知恵袋プロジェクトリーダー 岡本真氏によると、約2年前に知恵袋をYahoo! JAPANに移植することが決まった。「ベータ期間の初期は、ほとんどの機能が韓国版のローカライズだった。そのままもらったという感じだったが、開発スピードを優先した」(門川氏)。

左からヤフーのリスティング事業部 検索企画室 Yahoo!知恵袋プロジェクトリーダー 岡本真氏、リスティング事業部 技術 門川百合子氏、申健翔氏

 ただ、韓国版知恵袋も技術的に“枯れている”とはいいがたく、「ブラックボックスの部分がたくさんあり、手探りでベータ公開した。当初はバグだらけだった」と門川氏は振り返る。そんな状況でもベータ版を公開したのはユーザーからのフィードバックを得たかったからだ。ユーザーからの電子メールに基づいて改善を加える。また、週に1度はヤフーのカスタマサポートからフィードバックの資料をもらい、改善を検討する。新機能の追加などは主に知恵袋の企画担当が検討するが、「最終決定には必ず技術がからむようにする」(門川氏)ことで、開発に無理が出ないようにする。

 新機能の追加と同時に知恵袋の技術陣が重視したのは、“ヤフーにふさわしいサービスレベルを維持すること”。1年7カ月のベータ期間中だけで約647万件の質問があり、解決した質問(ベストアンサー)は約314万。総回答数は約2437万件に上った。ベータ期間の当初と比較してページビューは2倍に膨らんだ。ベータ期間中の2004年10月から12月にかけては知恵袋のパフォーマンスが低下。質問をカテゴリ別にたどっていく操作のレスポンスが落ちて、1つの操作に2分程度の時間がかかるようになってしまった。このようなパフォーマンス低下はヤフーが考えるサービスレベルを満たしていないのは明らかだった。

 パフォーマンスの低下の場合、「まず疑うのはデータベース」(門川氏)。カテゴリ操作のケースでは、カテゴリに関連する質問の履歴を表示する作業がボトルネックになり、全体の処理を遅らせていた。門川氏らはクエリで一番遅い処理をしていた作業を見つけ出し、パフォーマンス低下の原因を特定。MySQLが生成する質問履歴のキャッシュを少なくすることで、ボトルネックをなくした。改善前はカテゴリに関連するすべての質問の履歴をキャッシュとして生成していたが、すべての質問履歴が見られることはないと判断し、最初の1〜2ページだけをキャッシュとして生成するようにした。

 パフォーマンスを向上させるためのデータベースのチューニングは日常作業だった。インデックスのサイズや、質問と回答のデータ量が予想を超えて増大することもあり、サービスレベルの維持には気を使った。正規版ではYahoo! JAPAN IDを使って、知恵袋とYahoo! JAPANのほかのサービスが連携を取れるようにするため、パフォーマンスの予測が難しくなる。門川氏は「ほかに比較できるサービスがないため難しい。他国のYahoo!のサービスを参考にしている」と述べた。

(@IT 垣内郁栄)

[関連リンク]
Yahoo!知恵袋

[関連記事]
Yahoo!知恵袋が正式版に、女性と初心者に愛される理由は? (@ITNews)
Web 2.0時代のYahoo!とは、検索リニューアルで端緒つかむ (@ITNews)
ヤフー社長に聞く「エンジニアにとってヤフーは働きやすい?」 (@ITNews)
新サービスを相次ぎ投入、ヤフーが検索技術に注力する理由 (@ITNews)

情報をお寄せください:

アイティメディアの提供サービス

ホワイトペーパー(TechTargetジャパン/閲覧には会員登録が必要です)

スキルアップ/キャリアアップ(JOB@IT)


- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?