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 read • Q2BSTUDIO Team

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.