perf(dashboard): paraleliza la carga de métricas SQL Server por nodo #11

Merged
acazares merged 1 commits from fix/dashboard-carga-lenta-sql-paralelo into development 2026-06-09 16:25:51 +00:00
Member

La carga inicial del dashboard (/+page.server.ts) tardaba ~30s porque
loadSqlDashboardFromNodes recorría los nodos en serie y hacía 3 round-trips
secuenciales por nodo (métricas, alerta, historial) → N×3 viajes encadenados
a SQL Server remoto.

Cambios:

  • Las 3 consultas por nodo ahora corren con Promise.all.
  • Los nodos se procesan con concurrencia acotada (8) vía mapWithConcurrency;
    la agregación se mantiene secuencial para conservar orden y evitar carreras.
  • getMssqlPoolMaster cachea la promesa del pool y reserva el slot de forma
    síncrona antes de cualquier await, evitando pools duplicados al paralelizar.
  • En +page.server.ts: métricas SQL Server y catálogo PostgreSQL se cargan en
    paralelo (Promise.allSettled); las 6 consultas de catálogo en Promise.all.
  • Se elimina la consulta listDatabaseNodes() duplicada (se reusa la ya cargada).
  • Hidratación de alertas y filtro de permisos paralelizados.
  • Se quita un console.log de depuración por fila (estándar: sin logs sueltos).

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

La carga inicial del dashboard (/+page.server.ts) tardaba ~30s porque loadSqlDashboardFromNodes recorría los nodos en serie y hacía 3 round-trips secuenciales por nodo (métricas, alerta, historial) → N×3 viajes encadenados a SQL Server remoto. Cambios: - Las 3 consultas por nodo ahora corren con Promise.all. - Los nodos se procesan con concurrencia acotada (8) vía mapWithConcurrency; la agregación se mantiene secuencial para conservar orden y evitar carreras. - getMssqlPoolMaster cachea la *promesa* del pool y reserva el slot de forma síncrona antes de cualquier await, evitando pools duplicados al paralelizar. - En +page.server.ts: métricas SQL Server y catálogo PostgreSQL se cargan en paralelo (Promise.allSettled); las 6 consultas de catálogo en Promise.all. - Se elimina la consulta listDatabaseNodes() duplicada (se reusa la ya cargada). - Hidratación de alertas y filtro de permisos paralelizados. - Se quita un console.log de depuración por fila (estándar: sin logs sueltos). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
acazares added 1 commit 2026-06-09 16:25:44 +00:00
La carga inicial del dashboard (/+page.server.ts) tardaba ~30s porque
loadSqlDashboardFromNodes recorría los nodos en serie y hacía 3 round-trips
secuenciales por nodo (métricas, alerta, historial) → N×3 viajes encadenados
a SQL Server remoto.

Cambios:
- Las 3 consultas por nodo ahora corren con Promise.all.
- Los nodos se procesan con concurrencia acotada (8) vía mapWithConcurrency;
  la agregación se mantiene secuencial para conservar orden y evitar carreras.
- getMssqlPoolMaster cachea la *promesa* del pool y reserva el slot de forma
  síncrona antes de cualquier await, evitando pools duplicados al paralelizar.
- En +page.server.ts: métricas SQL Server y catálogo PostgreSQL se cargan en
  paralelo (Promise.allSettled); las 6 consultas de catálogo en Promise.all.
- Se elimina la consulta listDatabaseNodes() duplicada (se reusa la ya cargada).
- Hidratación de alertas y filtro de permisos paralelizados.
- Se quita un console.log de depuración por fila (estándar: sin logs sueltos).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
acazares merged commit b8e47f7654 into development 2026-06-09 16:25:51 +00:00
acazares deleted branch fix/dashboard-carga-lenta-sql-paralelo 2026-06-09 16:25:52 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ADUANASOFT/PANEL_BASES_ANEXO24#11
No description provided.