画像シーケンスで35倍のパフォーマンスを達成した方法

| 2023年10月18日

MASVでは、お客様からのフィードバックを深く尊重し、できる限り迅速に対応するよう努めています。時には、製品をより良くするための前向きなアイデアやフィードバックをいただくこともあります。また、批判的なご意見をいただくこともあります。

私たちは、まさにそう考えていた。 画像シーケンスのパフォーマンスを向上させるには (別名、小さなファイルの大きなバッチ)。

当社は世界最大のファイルを転送することで有名ですが、当社のお客様は何千(時には何百万)もの小さなファイルを一度に転送することもあります。画像シーケンス、巨大なコードベース、またはLIDARスキャンを扱っている方なら、私たちが何を言っているかお分かりでしょう。

この特定の使用例では、ユーザーは画像シーケンスを転送する際に速度が低下することに気づきました。そこで私たちは解決策に取り組みました。私たちは次のことを発表できることを嬉しく思います。 MASVが最大35倍高速化 膨大な数の小さなファイルを含む転送の場合。

私たちのやり方はこうだ。

目次

イメージシーケンスとは何か?

画像シーケンスは、個々の画像ファイルの集まりです。各画像ファイルはビデオの1フレームである。メディアや映画制作において、アニメーションなどに使用される、 VFXラウンドトリッピングそしてカラーグレーディング。

ビデオを画像シーケンスに分割する利点は、各ビデオフレームに関する非常に詳細な情報を提供することです。これにより、カラーグレーディングチームは正確かつ効率的に作業を行うことができる。特殊効果チームは、より高度なシーン合成を行うことができる。

バスケットボール選手の画像

MASVは画像シーケンスに問題がないことが判明した。 具体的には.

これは、フォーマットや用途に関係なく、小さなファイルを何個も何個も転送するときの問題だった。

顧客はどのような問題に遭遇したか?

画像シーケンスの低速転送

Desktopアプリのバージョン2.7.0以前をお使いのお客様から、画像シーケンスの転送に時間がかかるとのご不満をいただいておりました:

  • 10分の4Kビデオは約200GB。1Gbpsのネットワークサービスでは、ダウンロードに20〜30分かかるかもしれない。
  • 同等の画像シーケンスは18,000の画像ファイルになる。同じ条件で、ダウンロードに4.5時間(またはそれ以上)かかったかもしれない。

さらに悪いことに、顧客は別の方法で時間を浪費した。あるケースでは、ある顧客が約50万の小さなファイルを転送しようとしました。私たちのデスクトップ・アプリケーションでは対応できませんでした。実際、転送のリクエストを処理するコンポーネントがクラッシュしました。

良いニュースは、このクラッシュが他の送金や他の顧客に影響を与えなかったことです。MASVは耐障害性に優れているため、1回の転送失敗が他の転送に影響を与えることはありません。

弊社のサポートチームは、手動で転送を小分けにし、転送履歴を消去し、デスクトップアプリの新しいカスタムビルドを試すことで、この問題を回避しました。一方、当社のエンジニアリングチームは、この問題の調査と修正に取り組みました。

では、何千もの小さなファイルの何が問題を引き起こしたのだろうか?

問題の根源を見つける

まず、バージョン2.7.0以前のMASV Desktopアプリを1Gbpsのネットワークに接続してベンチマークを行いました。

10GBの転送にかかった時間を以下の方法で計測した:

  • 10GBのファイル
  • 5MBのファイル2,000個

最も劇的な結果がここにある:

ブログページ・プレースホルダー画像

明らかなことがいくつかある:

  • 10GBのファイル1つの場合、ダウンロードはアップロードとほぼ同じ速度だ。これが標準です。
  • 2000個の5MBファイルでは、アップロードは5倍、ダウンロードは35倍遅くなる!

問題 #1:リード操作の遅延

この速度低下の原因のひとつは、デスクトップ・アプリケーションのコンピューターへのダウンロード保存方法にありました。

MASV クラウドにファイルをアップロードする場合、Desktop アプリはそのファイルを一度だけ読み込みます。MASV クラウドからダウンロードする場合、Desktop アプリはファイルをストレージに書き込みます。 読む そうすれば、転送されたファイルの完全性を検証することができる。

私たちのチームは、意図的な設計上の決定が、多くの小さなファイルの転送速度を意図せず低下させていることを発見しました。ダウンロード中の読み取り時間を短縮するために MASV Desktopアプリの読み取り操作の遅延書き込み操作を優先する。 この遅延は400ミリ秒に達することもある。.

面白いことに、MASVデスクトップアプリはこの遅延を必要としなくなった。デスクトップ・アプリケーションでダウンロードしたファイルを検証する方法を変更したときに、この遅延が不要になったのです。この改善により、この遅延は、転送時間全体のごく一部であるいくつかの大きなファイルではほとんど気にならない程度であったという事実が隠されています。しかし、上のグラフが示すように、多くの小さなファイルでは、この遅延が劇的に増加していました。

問題#2:転送履歴が遅い

デスクトップアプリには転送履歴があり、お客様が送受信した各ファイルを記録しています。この情報はデータベースに保存されます。このデータベースは、数十から数百のファイルを追跡するのに時間がかかるようには見えませんでした。しかし、画像シーケンスには数十万、あるいはそれ以上のファイルが含まれることがあります。

私たちは、このデータベースのパフォーマンスを完全に監査しました。これには、30万ファイルの転送履歴をシミュレートすることも含まれていました。データベースのパフォーマンスの遅さは、何千ものファイルを転送したときに初めて明らかになりました。

問題#3:リクエスト処理が遅い

Desktopアプリには、コンピューターとMASVクラウドサーバー間のファイルリクエストを処理する内部コンポーネントもあります。このコンポーネントも、比較的少ないファイル数であれば目立った遅さは感じなかった。しかし、何千ものファイルを転送すると、そのパフォーマンスの低さは明らかでした。

どのように問題に対処したか

MASVの速度を低下させていた原因が明らかになったため、エンジニアリング・チームは改善に取り組みました。バージョン2.7.5以降では、このような改良が施されています:

改善 #1:読み取り遅延の削除

私たちのエンジニアリング・チームは、時代遅れのリード遅延を削除できたことを喜んでいる。ソフトウェア・エンジニアは、コードの簡素化と高速化の両方が実現できれば、それでいいと思っている。

改善#2: ファイル履歴とリクエスト処理の再構成

私たちのチームは、ファイル履歴データベースのパフォーマンスをチューニングし、リクエスト処理コンポーネントの容量を増やしました。両者とも数十万以上のファイルを簡単に処理できるようになりました。

監査から、私たちのエンジニアは、さらにスピードと信頼性を向上させるために、他にもいくつかの細かい改良を加えることができました。

ボーナス改善:ファイルハンドルの再利用

オペレーティング・システムがファイルを開いたり閉じたりするのを待つには、わずかな時間がかかる。それが何千ものファイルを扱うとなると、さらに時間がかかります。MASV Desktopアプリは、可能な限りファイルハンドルを再利用するようになりました。

結果約束を果たす

我々のチームは、画像シーケンスに影響を与える問題を修正することに成功した。.この結果に満足していると言っても過言ではない。

MASV Desktop app 2.7.5の結果をご覧ください。アップロードは依然として高速であることがわかります。ダウンロードもほぼ同じ速度です、 約束を果たすには十分なスピードだ.

ブログページ・プレースホルダー画像

驚異的なスピードで画像シーケンスを転送

私たちはお客様のご要望を真摯に受け止め、可能な限り迅速に対応します。お客様から画像シーケンスに関する転送速度の遅さについてクレームがあったとき、当社のエンジニアリング・チームとサポート・チームは解決策を見つけるために懸命に取り組みました。

我々は確信している。 MASVは画像シーケンスを他のファイルとほぼ同じ速度で転送します。大なり小なり。

画像シーケンスを扱う方、あるいはMASVで画像シーケンスを転送してみたが満足できなかった方は、最新版の デスクトップアプリケーション.私たちは、確実かつ安全にファイルを転送する最も簡単で高速な方法を提供し続けたいと考えています。

MASVは初めてですか?

メディアや重いグラフィック資産のための最速のファイル転送をお試しください。今すぐサインアップ