現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。トップ全記事一覧テクノロジー2009.02.18オークションシステムの簡単紹介こんにちは、オークション事業部開発部のLiuです。以下3つのテーマに分けて簡単に紹介します。JAPANの中でも最大級のサービスです。これだけ大きな規模のシステムを支えているのが、およそ数千台のFreeBSDサーバーになります。基本的に機能毎に分かれていて、独立性をたもちながら互いに連携し合い、結果的に一つの大きなオークションシステムを構成しています。ヤフオクは、お客様向けに有料サービスを提供するので、障害発生からの復旧やアクセスの増加に備えて、可用性と拡張性を十分に考慮しています。このサーバーの単位を以後機能サーバーと呼びます。・マイ・オークションなどがあります(もちろん全てではありません)。中でも一番重要なのは「マスタ」です。このサーバーは出品、入札など主要な処理を行います。オークションは競りの性質上、現在価格や入札数などがリアルタイムに変動しています。タイムラグを最小限に抑えるかを、システム構成面で非常に苦労しています。ちなみに、この機能要件を満たすために、オークションシステムでは画像など一部の静的なコンテンツを表示する以外、キャッシュサーバーの仕組みは使っていません。やってデータの同期処理を行っているのか、疑問を持っている方もいるかと思いますので、次に簡単に紹介したいと思います。データの同期処理ヤフー独自の技術には、非常に効率のよいサーバー間のデータ通信プロトコルがあります。サーバー間データ通信を容易に行うことができます。必要なデータだけを下流のサーバーにフィードすることも可能です。これにより、ネットワーク上無駄なトラフィックを発生せず、また受け側サーバーで無駄なデータ処理をしなくて済むため、高速なデータ同期処理が可能になります。オークションシステムはこの技術をよく使用しています。トランザクション発生元のマスタから、データ中継サーバーを経由し、末端の機能サーバー(検索など)までにデータの同期処理を実現しています。ウォーターフォールに近いイメージになるでしょうか。データ伝播の経路が長すぎたり、フィルタリング条件を設定せずに必要としないデータまで流してしまったりすると、データ反映の遅延問題が発生しやすくなります。ならないように、システム設計の段階でよくシステム構成を検討しなければならなりませんし、リリース後の日々のシステム監視やチューニングも当然欠かせずに行っています。データ構造オークションシステムの中で実にいろんなデータ構造があります。Oracleなど)などの種類があります。ハッシュファイルは構造がシンプルで、データが拡張・メンテナンスしやすいなどのメリットがあり、オークションのマスタでも使っています。出品数が膨大なので、ハッシュファイルの数も膨大になります。分散処理をしなければなりません。ハッシュファイルは書き込みには問題がなくても、リストや検索結果表示など、頻度の高い読み込み処理では、ディスクI/Oがネックになりやすいので、この場合にはオンメモリのデータ構造を使っています。オンメモリデータは非常に高速にアクセスすることができますが、マッピングできるサイズに限界があるために大きなデータを分割して分散処理をしています。RDBMについては、特にB2CのサブシステムやDM(データマイニング)など、大量データの履歴管理や集計分析が必要なシステムでよく使っています。まとめ今回はオークションシステムについて、3つのテーマに絞って簡単に紹介させていただきました。説明が足りなくてよく分からないところもあるかと思いますが、今後は機会があればもうちょっと詳細に紹介できればと思います。今後とも、Yahoo!オークションをよろしくお願いします。JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。JAPANのサービス開発を支える技術やデザイン、文化を発信しています。Reserved.このページの先頭へ。