当ブログは移行しました。

http://www.symmetric.co.jp/blogに移行しました。
5秒後に自動的に移動します。
移動しない場合はこちらをクリックしてください。

携帯コンテンツ変換の選定基準:パフォーマンス

携帯コンテンツ変換エンジンは、システムのフロントに位置し、常にレスポンスが通過するので、そのパフォーマンスは非常に重要です。パフォーマンス・データはコンテンツや環境や計測方法に非常に大きく依存し、客観的な方法は存在しないので分かり難いものです。良いデータを出しすぎてユーザからクレームをもらうのも好ましくなく、悪いデータを出すこともできず...とベンダー側も悩みます。

ラウンドアバウトでは、多少のリスクをとってパフォーマンスデータを公開しています。また1,000/秒のスループットも表明しています。画像キャッシュがある状態で、ノーマルなサーバで1ページ10画像程度のコンテンツで試せば、HTML/画像を合わせて、秒間1,000アクセスは控えめに言っても出るでしょう。ただ、他製品では「独自な技術で高速」というだけで、データも中身が分かりません。

■ハイ・パフォーマンスには理由がある
8:2の法則である通り、ボトルネックとなっている部分について、どうアプローチしているかで、「独自な技術で高速」の信憑性がある程度分かります。実装・プログラミング能力も最後には重要ですが、根本的な特性がやはり重要です。そこで、携帯コンテンツエンジンのパフォーマンスに及ぼす要素について、まとめていきたいと思います。

パフォーマンスに影響する3大要素。左が従来のサーバ型、右がラウンドアバウト


■開発言語
開発言語はC/C++といったシステムネイティブなコンパイル言語が一番望ましいでしょう。計算などjavaなどでも遜色ない部分もありますが、IOの多い携帯コンテンツエンジンでは、やはりネイティブ言語でないとパフォーマンスが出ません。ラウンドアバウトはもちろんC言語で開発されています。

■IOの量(通信>ファイル>>メモリ)
一般にIOはパフォーマンス劣化の主犯格です。リクエスト毎に発生するようなIOを検証します。

サーバ型の場合、最低HTMLの取得に1つの通信を行い、画像毎に変更確認の通信が発生し、変更されていれば取得の通信が発生します。一方ラウンドアバウトではHTMLはアパッチからメモリ経由で取得し、画像の変更確認も取得もローカルファイルアクセスで済みます。IOの観点からは圧倒的にラウンドアバウトに優位性があります

■言語変換
HTML言語変換の部分で、製品中おそらくもっとも複雑なロジックが実装されているので、このアーキテクチャーに問題があると、改善は難しくなります。

このHTML変換のアーキテクチャーには、タグの構造を解析して、構造変換するもの(多くの場合XML技術であるDOMツリー操作による変換)が多いです。一方ラウンドアバウトは、タグの構造解析を行いません。DOMツリーは処理として非常に重い処理ですが、すでにサービス停止されている端末の中にはこのような重いロジックが必要なものもあったため、その時は自然な選択でした。しかし、新しくラウンドアバウトを開発した時期には、利用可能端末のほとんどがXHTML/CHTMLの亜流のHTMLを解釈するので、構造解析するほどの変換は不要になったのです。

例えると、昔は言語変換(日本語→英語→フランス語、みたいな)が必要だったけど、今は方言変換(東京弁→関西弁→広島弁)で十分だ、と表現することができます。方言変換の方がワードレベルの軽い変換ロジックに出来ることは明らかです。

■画像変換
実は画像変換は、システムの中で一番重い処理であり、画像変換が起きるとキャッシュがある場合に比べて10倍以上レスポンスが掛かることもあります。どんなにアルゴリズムを工夫しても、根本的に重い処理だと認識しておく必要があります。

画像処理はこれほど遅いなので、いかに画像処理を引き起こさないかが、勝負です。つまり、キャッシュ設計がパフォーマンスを大きく左右することになります。

サーバ型の多くの場合、画像キャッシュは、端末の種類とURL毎に保存されます。この時の問題は2つあり、1つはサーバ型の為実際にシステムにどのような画像があるのか、リクエストされるまで分からないことと、様々な端末が隅々までアクセスするまでキャッシュが溜まらないので、いつまでも画像変換がおき続けることです。もう1つは端末毎のキャッシュではあまりにファイル数が多くなりすぎて、ヒット率が下がることです。

ラウンドアバウトでは、キャッシュの設計から機種とURLというデータに依存しない設計としています。このことでキャッシュはアクセスが来なくても前もって作りだすことができるようになり、大量の画像更新の時にはテスト機でキャッシュを生成して本番にUPするようなことまででき、常に100%キャッシュの運用が実現できます。また機種に非依存となるので、最大1/10程度までファイル数を減らすことができます。ファイル数の減少はキャッシュが早く溜まることとヒット率が大幅に向上する結果をもたらします。

画像変換とキャッシュに関しては「独自な技術で高速」と書かれることの多い部分であり、安易な比較はできませんが、ラウンドアバウトでは速さの理由を明確に提示することができます。

製品サイト「製品比較:パフォーマンス素因の比較」では、この内容を図解しています。

0 コメント:

コメントを投稿