Cómo conseguimos un rendimiento 35x para secuencias de imágenes

por | 18/10/2023

En MASV, valoramos profundamente las opiniones de los clientes e intentamos actuar en consecuencia lo antes posible. A veces recibimos ideas y comentarios positivos sobre cómo mejorar nuestro producto. Otras veces, los comentarios son críticos, y a menudo más productivos.

Así es exactamente como nos dimos cuenta cómo mejorar el rendimiento de la secuencia de imágenes (es decir, grandes lotes de archivos pequeños).

Se nos conoce sobre todo por mover los archivos más grandes del mundo, pero nuestros clientes también transfieren miles (a veces millones) de archivos pequeños a la vez. Si trabajas con secuencias de imágenes, bases de código gigantes o escaneos LIDAR, sabes de lo que hablamos.

En este caso de uso concreto, nuestros usuarios notaron una ralentización al transferir secuencias de imágenes. Así que nos pusimos a trabajar en una solución. Estamos encantados de anunciar que MASV es ahora hasta 35 veces más rápido para transferencias que impliquen un gran número de archivos pequeños.

Así es como lo hicimos.

Índice de contenidos

¿Qué son las secuencias de imágenes y cómo se utilizan?

Una secuencia de imágenes es una colección de archivos de imagen individualesen el que cada archivo de imagen es un fotograma individual de un vídeo. Se utilizan en los medios de comunicación y en la producción cinematográfica para cosas como la animación, VFX de ida y vueltay etalonaje.

La ventaja de dividir un vídeo en una secuencia de imágenes es proporcionar información muy detallada sobre cada fotograma de vídeo. Esto permite a los equipos de etalonaje hacer su trabajo con precisión y eficacia. Permite a los equipos de efectos especiales realizar composiciones de escenas más sofisticadas.

secuencia de imágenes de un jugador de baloncesto

Resulta que MASV no tenía problemas con las secuencias de imágenes concretamente.

Esto era un problema cuando se transferían muchos, muchos archivos pequeños, independientemente de su formato o uso.

¿Qué problemas encontraron nuestros clientes?

Transferencias lentas para secuencias de imágenes

Los clientes que utilizaban la versión 2.7.0 y anteriores de la aplicación de escritorio se quejaban de la lentitud de las transferencias de secuencias de imágenes:

  • Un vídeo 4K de 10 minutos ocupa unos 200 GB. Con un servicio de red de 1 Gbps, podría haber tardado entre 20 y 30 minutos en descargarse.
  • Una secuencia de imágenes equivalente podría tener 18.000 archivos de imágenes. En las mismas condiciones, podría haber tardado 4,5 horas (o más) en descargarse.

Peor aún, los clientes perdían el tiempo de otras formas. En un caso, un cliente intentó transferir unos 500.000 archivos pequeños. Nuestra aplicación de escritorio no pudo soportarlo. De hecho, colapsó el componente encargado de gestionar las solicitudes de transferencia.

La buena noticia es que este fallo no afectó a otras transferencias ni a otros clientes. MASV está construido para ser resistente, de modo que una sola transferencia fallida no afecte a las transferencias de nadie más.

Nuestro equipo de asistencia solucionó el problema separando manualmente la transferencia en transferencias más pequeñas, borrando el historial de transferencias y probando nuevas versiones personalizadas de la aplicación de escritorio. Mientras tanto, nuestro equipo de ingeniería se dedicó a investigar y solucionar el problema.

Entonces, ¿qué tienen miles de archivos pequeños que causaron el problema?

Encontrar la(s) raíz(es) del problema

Empezamos haciendo una prueba comparativa de la aplicación MASV Desktop, versiones 2.7.0 y anteriores, conectada a una red de 1 Gbps.

Medimos el tiempo que se tardaba en transferir 10 GB de estas formas:

  • Un archivo de 10 GB
  • Dos mil archivos de 5 MB

He aquí los resultados más espectaculares:

blog-page-placeholder-image

Hay un par de cosas obvias:

  • Para un único archivo de 10 GB, la descarga es casi tan rápida como la subida. Esto es lo normal.
  • Para 2000 archivos de 5 MB, ¡la carga es 5 veces más lenta y la descarga 35 veces más lenta!

Edición #1: Retraso en las operaciones de lectura

Una de las causas de esta ralentización era la forma en que nuestra aplicación Escritorio almacena las descargas en tu ordenador.

Para subir un archivo a la nube MASV, la aplicación Escritorio sólo lo lee una vez. Al descargarlo de la nube MASV, la aplicación Escritorio escribe el archivo en tu almacenamiento, pero también necesita lee para que pueda verificar la integridad del archivo transferido.

Nuestros equipos descubrieron una decisión de diseño intencionada que ralentizaba involuntariamente las transferencias de muchos archivos pequeños. Para reducir el tiempo de lectura durante la descarga, el La aplicación MASV Desktop retrasa las operaciones de lecturadando prioridad a las operaciones de escritura. A veces este retraso llegaba a 400 ms, casi medio segundo.

Lo curioso es que la aplicación MASV Desktop ya no necesitaba este retraso. Quedó obsoleto cuando cambiamos la forma en que la aplicación Escritorio verificaba los archivos descargados. Esta mejora ocultó el hecho de que el retraso era apenas perceptible para unos pocos archivos grandes, una pequeña fracción del tiempo total de transferencia. Pero, como muestra el gráfico anterior, esos retrasos se acumulaban dramáticamente para muchos archivos pequeños..

Incidencia #2: Historial de transferencias lento

Nuestra aplicación de Escritorio tiene un historial de transferencias, que utiliza para hacer un seguimiento de cada archivo que envías y recibes. Guarda esta información en una base de datos. La base de datos no parecía lenta en el seguimiento de docenas e incluso cientos de archivos. Pero las secuencias de imágenes pueden contener cientos de miles de archivos, o más.

Realizamos una auditoría completa del rendimiento de esta base de datos. Eso incluyó simular un historial de transferencia de 300.000 archivos, lo que no es infrecuente para una secuencia de imágenes. El lento rendimiento de la base de datos sólo se hizo evidente al transferir miles de archivos.

Incidencia #3: Gestión lenta de las solicitudes

Nuestra aplicación de escritorio también tiene un componente interno que gestiona las peticiones de archivos entre tu ordenador y los servidores en la nube de MASV. De nuevo, este componente no parecía notablemente lento con un número relativamente pequeño de archivos. Pero su bajo rendimiento era evidente cuando se transferían miles de archivos.

Cómo abordamos los problemas

Con una idea clara de lo que ralentizaba MASV, nuestro equipo de Ingeniería se puso manos a la obra para mejorarlo. Puedes obtener estas mejoras en la versión 2.7.5 y posteriores:

Mejora #1: Eliminar el retardo de lectura

Nuestro equipo de ingeniería se alegró de eliminar el obsoleto retardo de lectura. Los ingenieros de software consideran que es un buen día cuando pueden simplificar su código y hacerlo más rápido.

Mejora #2: Reconfigurar el Historial de Archivos y la Gestión de Peticiones

Nuestro equipo ajustó el rendimiento de su base de datos del historial de archivos y añadió más capacidad al componente de gestión de solicitudes. Ahora ambos pueden gestionar fácilmente cientos de miles de archivos, y más.

A partir de la auditoría, nuestros ingenieros pudieron añadir algunas otras mejoras menores para aumentar aún más la velocidad y la fiabilidad.

Mejora adicional: Reutiliza los Manejadores de Archivos

Se tarda poco tiempo en esperar a que el sistema operativo abra y cierre un archivo. Eso se acumula cuando se trabaja con miles de archivos. Ahora, la aplicación MASV Desktop reutiliza los gestores de archivos siempre que puede.

El resultado: Cumplir nuestra promesa

Nuestros equipos consiguieron solucionar los problemas que afectaban a las secuencias de imágenes. Decir que estamos satisfechos con los resultados es quedarse corto.

Echa un vistazo a los siguientes resultados de la aplicación MASV Desktop 2.7.5. Observarás que las subidas siguen siendo rápidas. Las descargas son prácticamente igual de rápidas, definitivamente lo suficientemente rápido como para cumplir nuestra promesa.

blog-page-placeholder-image

Transfiere Secuencias de Imágenes a Velocidades Increíbles

Nos tomamos en serio las peticiones de los clientes y actuamos en consecuencia lo más rápidamente posible. Cuando nuestros clientes se quejaron de la lentitud de las transferencias en relación con las secuencias de imágenes, nuestros equipos de Ingeniería y Asistencia trabajaron duro para encontrar una solución.

Confiamos en que MASV transfiere secuencias de imágenes prácticamente con la misma velocidad que cualquier otro archivograndes o pequeñas.

Si trabajas con secuencias de imágenes, o has intentado transferir secuencias de imágenes con MASV y no has quedado satisfecho, descárgate la última versión de aplicación de escritorio. Queremos seguir proporcionándote la forma más fácil y rápida de transferir archivos de forma fiable y segura.

¿Eres nuevo en MASV?

Prueba la transferencia de archivos más rápida para archivos multimedia y gráficos pesados. Regístrate hoy mismo.