Tecnología

Náyade: modelo de flujo de datos oportuno

Modelo de flujo de datos oportuno para náyades fue realizado por un equipo de Microsoft Research en Silicon Valley en 2013 y está disponible bajo la licencia de código abierto Apache 2.0. Naiad es un sistema de código abierto basado en «.Net» que se desarrolló para un alto rendimiento, baja latencia y cálculo incremental sobre otras técnicas de procesamiento por lotes, procesamiento de gráficos y sistemas de procesamiento de flujo actuales como MapReduce, Dryad, Spark, Storm, Pregel, GraphLab , etc. Se puede tomar como el siguiente nivel de pensamiento después de Dryad, que usó Gráficos Acíclicos Dirigidos (DAG), ya que Naiad también admite gráficos de flujo de datos dirigidos con ciclos estructurados.

Naiad coordina todos los trabajos de procesamiento por marcas de tiempo. Estas marcas de tiempo se agregan a los mensajes mediante un flujo de datos oportuno, que fluye entre los vértices del gráfico. Esta característica permite al modelo de varias formas, como vértices con estado para consumir y producir mensajes de forma asincrónica, bucles estructurados que permiten retroalimentación en el flujo de datos y notificaciones para vértices siempre que se hayan recibido todos los registros para una entrada o bucle determinado.

Contribución

Muchos algoritmos de big data contienen bucles, y estos bucles a menudo dependen de los datos, y mantienen el cálculo en iteración hasta que la respuesta ya no cambia. Cuando la respuesta comienza a estabilizarse, hay una redundancia de datos entre cada iteración y las iteraciones anteriores, ya que muchos de los datos en ambas iteraciones son iguales.

En los últimos años, se introdujeron plataformas de big data como Hadoop y las personas eran más ambiciosas para procesar sus datos en la nube y querían hacer el procesamiento de gráficos, procesamiento de flujo, procesamiento por lotes con grandes fuentes de datos. Esos problemas llevan al equipo de Microsoft hacia la implementación de Naiad. Está diseñado para resolver los problemas desafiantes mencionados anteriormente con el apoyo de algunos factores clave como ejecutar bucles, mantener el estado, reaccionar rápidamente a los datos entrantes y proporcionar un entorno de alto rendimiento para ejecutarse en un sistema distribuido escalable.

Algunas de las características proporcionadas por Naiad se pueden lograr con los sistemas existentes, pero esas aplicaciones dependen de diferentes plataformas y tienen diferentes efectos sobre la eficiencia, la facilidad de mantenimiento y la simplicidad. Naiad combina todas estas características en un marco general que admite la transmisión de baja latencia, el procesamiento por lotes de alto rendimiento y la coordinación dentro de un flujo de datos.

Naiad ejecuta programas simples con una velocidad de plataformas de propósito general existentes y programas complejos con una velocidad de sistemas especializados para aprendizaje automático, análisis de gráficos y procesamiento de flujos. Lo más importante es que Naiad se puede utilizar de forma eficaz en una variedad de programas simples para sistemas distribuidos a gran escala. Naiad habilita el poder del análisis de gráficos, el aprendizaje automático y el procesamiento de transmisiones en un solo marco.

Esta es la primera solución que reúne el poder de estas tecnologías. Puede ser posible combinar los sistemas existentes y llegar a algún tipo de solución para un escenario dado, pero en comparación con Naiad como una solución de plataforma única, es típicamente más eficiente, mantenible y extensible.

.

Publicaciones relacionadas

Botón volver arriba