Cuello de botella, YouTube y canales C#: backup .NET 3x más rápido

Optimización de backup para Autodesk Construction Cloud con pipeline productor–consumidor en .NET 9 y canales unbounded. De 12 h a 4 h para 225 GB; copias incrementales y descargas paralelas por proyecto. Soluciones de software y IA de Q2BSTUDIO.

30 ago 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Cuando lancé por primera vez mi herramienta Autodesk Construction Cloud Backup en 2022 estaba bastante satisfecho con los resultados; respaldaba de forma fiable alrededor de 150 GB en aproximadamente 6 horas, una mejora notable frente a las alternativas comerciales de la época.

Avanzamos hasta 2025 y los datos habían crecido hasta unos 225 GB, pero la copia nocturna ahora tardaba la friolera de 12 horas. Los datos no se habían duplicado y sin embargo el tiempo de copia sí. Algo no encajaba en la escalabilidad del proceso y la situación no me gustaba.

La idea clave llegó mientras actualizaba el proyecto a .NET 9 y aprovechaba para cambiar el sistema de logging a Serilog. Durante un descanso vi un video sobre C# Channels que me abrió los ojos a una solución elegante y sencilla.

El problema era el enfoque secuencial y rudimentario: mientras una tarea estaba enumerando el contenido de un proyecto, el descargador estaba inactivo; cuando el descargador trabajaba, el enumerador esperaba. Era como un puente de un solo sentido donde sólo puede pasar un coche a la vez.

La solución fue clara: separar responsabilidades. Tener trabajadores que se dediquen exclusivamente a enumerar proyectos y, al mismo tiempo, otro trabajador que descargue continuamente los proyectos ya preparados. El descargador debía estar activo todo el tiempo recibiendo trabajo desde una cinta transportadora lógica.

Implementé un canal unbounded que actúa como esa cinta transportadora que almacena proyectos listos para descarga. La decisión por un canal sin límite fue intencional porque los tiempos de enumeración varían mucho entre proyectos; algunos requieren segundos y otros más de media hora. Un canal limitado podría bloquear enumeraciones rápidas a la espera de descargas lentas.

El componente productor controla cuántos proyectos se enumeran simultáneamente usando un semáforo para fijar la concurrencia y poder gestionar errores por proyecto con más control. Los productores escriben en el canal proyectos ya analizados y listos para la siguiente fase.

El componente consumidor lee continuamente del canal y descarga los proyectos en el orden en que van llegando. Para medir la salud del pipeline registramos métricas de rendimiento que comparan el tiempo activo de descarga frente al tiempo de espera entre proyectos. Si el tiempo de espera es alto, la enumeración es el cuello de botella; si es bajo, las descargas están aprovechando bien el pipeline.

Es importante destacar que el consumidor procesa proyectos de forma secuencial intencionalmente ya que la API de Autodesk aplica límites de uso que podrían causar throttling si se descargaran varios proyectos a la vez. Dentro de cada proyecto, sin embargo, los archivos se descargan en paralelo, aprovechando la descarga concurrente para exprimir el ancho de banda disponible.

La estrategia de paralelismo tiene dos niveles complementarios. Nivel 1: concurrencia controlada en la enumeración de proyectos para tener varios proyectos preparados en paralelo. Nivel 2: dentro de cada proyecto, descargas paralelas de archivos para maximizar el uso del enlace de red. Mientras un proyecto descarga sus archivos, otros proyectos pueden estar siendo enumerados en segundo plano, manteniendo el descargador alimentado.

El resultado fue notable. La copia que antes tardaba 12 horas para unos 225 GB repartidos en aproximadamente 170 proyectos ahora termina en apenas 4 horas, una mejora de 3 veces. Más importante aún, las estadísticas de eficiencia del pipeline muestran que el descargador está activo más del 90% del tiempo en ejecuciones típicas, frente a la eficiencia estimada del 50% del enfoque secuencial anterior.

Ejemplo de métricas que empezamos a reportar en cada ejecución: tiempo total del pipeline, tiempo activo de descarga en porcentaje, tiempo de espera ocioso en porcentaje, proyectos procesados y tiempo medio de espera entre proyectos. Además integramos copias incrementales que reutilizan archivos de respaldos anteriores para evitar descargas innecesarias.

La combinación de pipeline productor consumidor con copias incrementales produce beneficios compuestos: el pipeline mantiene la herramienta ocupada y las copias incrementales evitan redescargar archivos sin cambios, lo que ahorra ancho de banda y tiempo de ejecución.

La lección clave fue reconocer que enumerar y descargar son operaciones diferentes con cuellos de botella distintos. La enumeración es limitada por llamadas a la API y latencias, mientras que la descarga está limitada por el ancho de banda. Desacoplar ambas con Channels permite que cada operación funcione a su ritmo óptimo sin bloquear a la otra.

En Q2BSTUDIO, empresa de desarrollo de software y aplicaciones a medida, aplicamos este tipo de mejoras arquitectónicas en proyectos reales para ofrecer soluciones escalables y eficientes. Somos especialistas en software a medida, inteligencia artificial e ia para empresas, además de ofrecer servicios de ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y soluciones de agentes IA. También integramos herramientas como power bi para enriquecer la visualización y análisis de datos.

Si tu empresa necesita optimizar procesos batch, construir aplicaciones a medida o aprovechar inteligencia artificial y agentes IA para automatizar tareas, Q2BSTUDIO puede diseñar la solución adecuada. Ofrecemos desarrollo de software a medida, consultoría en ciberseguridad, migración y operación en servicios cloud aws y azure, y proyectos de inteligencia de negocio con power bi para transformar datos en decisiones accionables.

Este caso práctico demuestra que a veces una idea simple y bien aplicada mejora radicalmente el rendimiento: un canal bien pensado, concurrencia controlada en la enumeración y descargas paralelas dentro de cada proyecto cambiaron por completo la eficiencia de una herramienta de backup. En Q2BSTUDIO combinamos esa visión técnica con experiencia en inteligencia artificial y servicios cloud para llevar sus proyectos al siguiente nivel.

Contacto y próximos pasos: si te interesa que revisemos el rendimiento de tus procesos, optimicemos una aplicación a medida o implementemos agentes IA y soluciones de inteligencia de negocio con power bi, ponte en contacto con Q2BSTUDIO para una evaluación y propuesta adaptada a tus necesidades.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.