Comment nous avons obtenu une performance de 35x pour les séquences d'images

par | 18 octobre 2023

Chez MASV, nous accordons une grande importance aux commentaires de nos clients et nous essayons d'y donner suite le plus rapidement possible. Parfois, nous recevons des idées et des commentaires positifs sur la manière d'améliorer notre produit. D'autres fois, le retour d'information est critique - et souvent plus productif.

C'est exactement comme cela que nous avons compris comment améliorer les performances des séquences d'images (AKA grands lots de petits fichiers).

Nous sommes surtout connus pour déplacer les plus gros fichiers du monde, mais nos clients transfèrent également des milliers (parfois des millions) de petits fichiers à la fois. Si vous travaillez avec des séquences d'images, des bases de codes géantes ou des scans LIDAR, vous savez de quoi nous parlons.

Dans ce cas d'utilisation particulier, nos utilisateurs ont remarqué un ralentissement lors du transfert de séquences d'images. Nous nous sommes donc attelés à la recherche d'une solution. Nous sommes ravis d'annoncer que Le MASV est désormais jusqu'à 35 fois plus rapide pour les transferts impliquant un grand nombre de petits fichiers.

Voici comment nous avons procédé.

Table des matières

Que sont les séquences d'images et comment sont-elles utilisées ?

Une séquence d'images est un ensemble de fichiers d'images individuelsoù chaque fichier image correspond à une seule image d'une vidéo. Ils sont utilisés dans les médias et la production cinématographique pour des choses telles que l'animation, VFX roundtrippinget l'étalonnage.

L'avantage de décomposer une vidéo en une séquence d'images est de fournir des informations très détaillées sur chaque image vidéo. Cela permet aux équipes d'étalonnage de faire leur travail avec précision et efficacité. Les équipes chargées des effets spéciaux peuvent ainsi réaliser des compositions de scènes plus sophistiquées.

séquence d'images d'un joueur de basket-ball

Il s'avère que MASV n'a pas de problème avec les séquences d'images en particulier.

Ce problème s'est posé lors du transfert d'un très grand nombre de petits fichiers, quel que soit leur format ou leur utilisation.

Quels sont les problèmes rencontrés par nos clients ?

Transferts lents pour les séquences d'images

Les utilisateurs de l'application Desktop version 2.7.0 et antérieures se sont plaints de la lenteur des transferts pour les séquences d'images :

  • Une vidéo 4K de 10 minutes pèse environ 200 Go. Avec un réseau à 1Gbps, le téléchargement aurait pu prendre de 20 à 30 minutes.
  • Une séquence d'images équivalente pourrait représenter 18 000 fichiers d'images. Dans les mêmes conditions, le téléchargement aurait pu prendre 4,5 heures (ou plus).

Pire encore, les clients ont perdu du temps d'autres manières. Dans un cas, un client a essayé de transférer environ 500 000 petits fichiers. Notre application Desktop n'a pas pu le gérer. En fait, elle a fait planter le composant chargé de traiter les demandes de transfert.

La bonne nouvelle est que cette panne n'a pas affecté d'autres transferts ou d'autres clients. MASV est conçu pour être résilient, de sorte qu'un seul transfert défaillant n'affecte pas les transferts des autres clients.

Notre équipe d'assistance a résolu le problème en séparant manuellement le transfert en plusieurs petits transferts, en effaçant l'historique des transferts et en essayant de nouvelles versions personnalisées de l'application de bureau. Pendant ce temps, notre équipe d'ingénieurs a enquêté sur ce problème et l'a corrigé.

Pourquoi des milliers de petits fichiers sont-ils à l'origine du problème ?

Trouver la (les) racine(s) du problème

Nous avons commencé par évaluer l'application MASV Desktop, versions 2.7.0 et antérieures, connectée à un réseau de 1Gbps.

Nous avons mesuré le temps nécessaire pour transférer 10 Go de la manière suivante :

  • Un fichier de 10 Go
  • Deux mille fichiers de 5 MB

Voici les résultats les plus spectaculaires :

blog-page-placeholder-image

Il y a deux choses évidentes :

  • Pour un seul fichier de 10 Go, le téléchargement est presque aussi rapide que le chargement. C'est la norme.
  • Pour 2000 fichiers de 5 MB, le chargement est 5 fois plus lent et le téléchargement 35 fois plus lent !

Numéro #1 : Retarder les opérations de lecture

L'une des causes de ce ralentissement est la façon dont notre application Desktop stocke les téléchargements sur votre ordinateur.

Pour télécharger un fichier vers le nuage MASV, l'application Desktop ne le lit qu'une seule fois. Lors d'un téléchargement à partir du nuage MASV, l'application Desktop écrit le fichier dans votre espace de stockage - mais elle doit également lire afin qu'il puisse vérifier l'intégrité du fichier transféré.

Nos équipes ont découvert une décision de conception intentionnelle qui ralentissait involontairement les transferts pour de nombreux petits fichiers. Pour réduire le temps passé à lire pendant le téléchargement, l'option L'application MASV Desktop a retardé les opérations de lectureen donnant la priorité aux opérations d'écriture. Parfois, ce délai atteint 400 ms, soit près d'une demi-seconde..

Il est intéressant de noter que l'application MASV Desktop n'a plus besoin de ce délai. Il est devenu obsolète lorsque nous avons modifié la façon dont l'application Desktop vérifie les fichiers téléchargés. Cette amélioration a masqué le fait que le délai était à peine perceptible pour quelques gros fichiers, représentant une petite fraction du temps de transfert total. Mais, comme le montre le graphique ci-dessus, ces retards s'accumulent considérablement pour de nombreux petits fichiers.

Problème #2 : Historique des transferts lents

Notre application Desktop dispose d'un historique des transferts, qu'elle utilise pour garder une trace de chaque fichier que vous envoyez et recevez. Ces informations sont conservées dans une base de données. La base de données ne semble pas lente à suivre des dizaines, voire des centaines de fichiers. Mais les séquences d'images peuvent contenir des centaines de milliers de fichiers, voire plus.

Nous avons effectué un audit complet des performances de cette base de données. Nous avons notamment simulé un historique de transfert de 300 000 fichiers, ce qui n'est pas rare pour une séquence d'images. La lenteur de la base de données n'est apparue que lors du transfert de milliers de fichiers.

Problème #3 : Traitement lent des demandes

Notre application de bureau comporte également un composant interne qui gère les demandes de fichiers entre votre ordinateur et les serveurs MASV. Là encore, ce composant n'a pas semblé trop lent pour un nombre relativement faible de fichiers. Mais ses performances médiocres étaient évidentes lors du transfert de milliers de fichiers.

Comment nous avons abordé les problèmes

Ayant une idée claire de ce qui ralentissait MASV, notre équipe d'ingénieurs s'est mise au travail pour l'améliorer. Ces améliorations sont disponibles à partir de la version 2.7.5 :

Amélioration #1 : Supprimer le délai de lecture

Notre équipe d'ingénieurs a été heureuse de supprimer le délai de lecture obsolète. Les ingénieurs logiciels considèrent que c'est un bon jour lorsqu'ils peuvent à la fois simplifier leur code et le rendre plus rapide.

Amélioration #2 : Reconfigurer l'historique des fichiers et le traitement des demandes

Notre équipe a amélioré les performances de la base de données de l'historique des fichiers et a augmenté la capacité du composant de traitement des demandes. Tous deux peuvent désormais gérer facilement des centaines de milliers de fichiers, voire plus.

A partir de l'audit, nos ingénieurs ont pu ajouter quelques autres améliorations mineures pour encore plus de rapidité et de fiabilité.

Amélioration bonus : Réutiliser les poignées de fichiers

L'attente de l'ouverture et de la fermeture d'un fichier par le système d'exploitation prend un peu de temps. Ce temps s'additionne lorsqu'il s'agit de milliers de fichiers. L'application MASV Desktop réutilise désormais les gestionnaires de fichiers lorsqu'elle le peut.

Le résultat : Tenir nos promesses

Nos équipes ont réussi à résoudre les problèmes qui affectaient les séquences d'images. Dire que nous sommes satisfaits des résultats est un euphémisme.

Regardez les résultats ci-dessous pour MASV Desktop app 2.7.5. Vous remarquerez que les téléchargements sont toujours aussi rapides. Les téléchargements sont pratiquement aussi rapides, définitivement assez rapide pour tenir notre promesse.

blog-page-placeholder-image

Transfert de séquences d'images à des vitesses incroyables

Nous prenons les demandes de nos clients au sérieux et y répondons le plus rapidement possible. Lorsque nos clients se sont plaints de la lenteur des transferts liés aux séquences d'images, nos équipes d'ingénierie et d'assistance ont travaillé d'arrache-pied pour trouver une solution.

Nous sommes convaincus que MASV transfère des séquences d'images pratiquement à la même vitesse que n'importe quel autre fichier, qu'ils soient grands ou petits.

Si vous travaillez avec des séquences d'images, ou si vous avez essayé de transférer des séquences d'images avec MASV et que vous n'avez pas été satisfait, veuillez télécharger la dernière version de Application de bureau. Nous voulons continuer à vous offrir le moyen le plus simple et le plus rapide de transférer des fichiers de manière fiable et sécurisée.

Nouveau à MASV ?

Essayez le transfert de fichiers le plus rapide pour les médias et les ressources graphiques lourdes. Inscrivez-vous dès aujourd'hui.