Horizon: Acelerando el Rendimiento de Reingestión con CDP

Autor

Urvi Savla

Fecha de publicación

Esta publicación de blog es la siguiente en la serie de publicaciones de blog de la Plataforma de Datos Componible (CDP). La publicación anterior, Hubble: Ahora Más Rápido que la Luz, entró en los detalles de la re-arquitectura de stellar-ETL usando CDP y sus beneficios. Esta publicación explica cómo hicimos la reingestión de Horizon 9x más rápida usando componentes de CDP.

Antecedentes

Qué es la Reingestión

El tamaño de los datos de Horizon es enorme y es impráctico para cada instancia almacenar toda la historia de la red. La mayoría de las instancias de Horizon, incluidas las alojadas por Stellar Development Foundation (SDF), están configuradas con una ventana de retención específica–recomendamos 30 días– para gestionar el tamaño de los datos.

Sin embargo, hay escenarios en los que podrías querer recuperar y procesar datos de libros mayores fuera de esta ventana de retención. Horizon admite esto a través de un proceso llamado reingestión, que recupera y reprocesa datos históricos del libro mayor de Stellar.

Hay varias situaciones clave en las que un usuario de Horizon podría necesitar realizar la reingestión:

  • Configurando un nuevo servidor: Para los usuarios que quieren rellenar datos dentro de su ventana de retención, la reingestión se puede usar para hidratar su base de datos con datos antiguos del libro mayor.
  • En una instancia existente: La reingestión se puede usar para recuperar datos fuera de la ventana de retención, como para auditorías o propósitos de reconciliación.

Después de una pausa en las operaciones: Si una instancia de Horizon ha estado inactiva por un período, la reingestión puede ser necesaria para actualizarla, ya que puede ser más rápida y eficiente que usar la ingesta en vivo para ponerse al día con el estado actual de la red.

Declaración del Problema

Arquitectura actual

La reingestión es tanto consumidora de tiempo como de recursos, tomando varios días para procesar solo un mes de historia reciente del libro mayor y meses para reprocesar toda la historia.

El proceso es exigente porque depende de Captive Core para recuperar y procesar los datos del libro mayor.

Solución

Nueva arquitectura

Central para CDP es el lago de datos de metadatos precalculados del libro mayor. Para detalles sobre cómo crear este lago de datos usando Galaxie, consulta la Introducción a Galexie: Extracción y Almacenamiento Eficiente de Datos de Stellar publicación de blog.

Ingerir datos desde el lago de datos es significativamente más rápido. Lo que normalmente tomaría meses para reingerir ahora toma solo unos días.

Esta mejora de velocidad se debe a dos factores principales:

  1. No hay tiempo de inicio de Captive Core (no es necesario descargar archivos de historial para construir el estado local).
  2. No es necesario reproducir los libros mayores para calcular los metadatos del libro mayor.

Los metadatos del libro mayor están disponibles para descarga directa desde Google Cloud Storage (GCS). Cada archivo está comprimido, lo que lo hace muy pequeño, por lo que se requiere un ancho de banda de red mínimo.

Para acomodar la nueva arquitectura, el comando de reingestión de la base de datos de Horizon db reingest ahora admite la reingestión desde el almacén de datos. Lo invocas de manera similar a como lo harías para Captive Core, pero con configuración adicional para el almacén de datos, como especificar la dirección del bucket y el esquema de datos. Para detalles del comando y configuración sobre el uso de CDP para la reingestión, consulta la guía de reingestión aquí.

Evaluación de Rendimiento

Captive Core vs. CDP

Para evaluar el rendimiento de la reingestión de Captive Core y CDP, realizamos pruebas bajo la siguiente configuración de hardware:

Especificaciones de Hardware

  • Instancia EC2 (m5.4xlarge) – para ejecutar Horizon:
    • 16 vCPUs
    • 64 GB RAM
    • Almacenamiento Solo EBS
    • Rendimiento de Red: Hasta 10 Gbps
    • IOPS base: 4,750
  • Instancia RDS (db.r5.4xlarge) - para ejecutar PostgreSQL 12:
    • 16 vCPUs
    • 128 GB RAM
    • 15 TB de almacenamiento

Reingestión Paralela

Horizon admite la reingestión paralela, lo que significa que el rango de reingestión se divide en subrangos e ingiere simultáneamente. Queríamos evaluar el nivel de paralelización alcanzable con ambos métodos (Captive Core y CDP). Así que reingerimos 10,000 libros mayores usando ambos métodos con niveles variables de paralelización y estos son los resultados:

Captive Core: El rendimiento estaba limitado por el I/O de disco y mostró rendimientos decrecientes con más de cuatro trabajadores.

CDP: En contraste, CDP logró una mejor paralelización, con resultados óptimos usando 16 trabajadores.

Para detalles sobre la configuración de la ingesta paralela, consulta la guía sobre trabajadores de ingesta paralela.

Reingestión de Historia Completa

Usando la mejor configuración paralela, estimamos el tiempo para reingerir 10,000 libros mayores. Sin embargo, los libros mayores antiguos son menos densos que los recientes, por lo que se requiere menos tiempo para reingerir datos antiguos. Para confirmar esto, muestreamos 10,000 libros mayores de cada año desde la creación de la red Stellar y extrapolamos el tiempo requerido para reingerir toda la historia.

Los resultados muestran que la reingestión usando Captive Core se proyecta que tomará aproximadamente 66 días, mientras que el CDP (con metadatos de libros mayores precalculados) se espera que tome alrededor de 7 días.

Comparación de Rendimiento: Captive Core vs. CDP:

En esta evaluación, Captive Core corrió con 2 trabajadores paralelos, mientras que CDP corrió con 16 trabajadores paralelos.


Conclusión

CDP es Más Rápido y Eficiente

Con CDP, la reingestión de Horizon es ahora hasta 9x más rápida, reduciendo los tiempos de procesamiento en más del 85%. Sin embargo, incluso con estas mejoras, usar Horizon para servir datos históricos completos requiere cantidades masivas de almacenamiento—alrededor de 40 TB y creciendo rápidamente. En la mayoría de los casos, construir tus propias aplicaciones usando CDP ofrece un camino mejor hacia adelante.

Los metadatos de libros mayores precalculados de CDP te permiten construir un conjunto de datos personalizado mucho más pequeño. Y si estás buscando reingerir grandes cantidades de datos para poblar tu nuevo conjunto de datos, CDP proporciona a tu aplicación enormes beneficios de rendimiento, haciéndolo ideal para crear aplicaciones eficientes y enfocadas.

Esto hace de CDP un cambio de juego para cualquiera que quiera construir aplicaciones flexibles y escalables más allá de Horizon. ¡Te animamos a explorar todo lo que CDP ofrece para tus propias necesidades de datos!

Velo en acción tú mismo.

Más para ti

La Serie CDP

Artículo

Molly Karcher

Plataforma de Datos Componible: Una Nueva Forma de Acceder a Datos en Stellar

Herramienta para Desarrolladores

Datos

Este artículo es el primero de una serie expansiva sobre la Plataforma de Datos Componible, la próxima generación de plataforma de acceso a datos en…

Ver

Artículo

Urvi Savla

Introduciendo Galexie: Extraer y Almacenar Datos de Stellar de Manera Eficiente

Datos

Herramienta para Desarrolladores

Galexie es el primer componente de la Plataforma de Datos Componible de Stellar, la próxima generación de plataforma de acceso a datos. Galexie es…

Ver

Artículo

Simon Chow

Hubble: Ahora Más Rápido que la Luz

Datos

Hubble

Aprende cómo Stellar ETL, que ha sido refactorizado para usar la suite completa de beneficios de la Plataforma de Datos Componible (CDP), la próxima…

Ver

Los Boletines

EL CORREO QUE REALMENTE QUIERES LEER

Entérate de nosotros primero. Suscríbete para obtener información en tiempo real sobre noticias, funcionalidades y recursos del ecosistema Stellar.

Al proporcionar la información de contacto requerida en este formulario, aceptas ser contactado por Stellar Development Foundation (SDF) para informarte sobre nuestros productos y servicios. Para más información sobre nuestras prácticas de privacidad o cómo darte de baja, por favor consulta nuestra Política de Privacidad.

Este sitio está protegido por reCAPTCHA y la Política de Privacidad de Google y Términos de Servicio aplican