Categories: NoticiasProgramación

Creación de una nueva plataforma de ejecución para clientes de Redis

Durante la última década, Redis se ha convertido en un caché en memoria popular y ampliamente utilizado. A diferencia de la mayoría de los cachés distribuidos, ofrece un atractivo conjunto de estructuras de datos integradas que mejoran sus capacidades más allá del simple almacenamiento de objetos serializados. Creado en 2009 como una tienda de un solo servidor para ayudar en el diseño de un servidor web, Redis brinda a las aplicaciones numerosas opciones útiles para organizar y recuperar datos almacenados, incluidos conjuntos, listas, hash y conjuntos ordenados. Unos años después de esto, agregó soporte de clúster para escalar el rendimiento y agregar replicación de datos para alta disponibilidad. Sin embargo, la implementación del clúster de Redis introdujo conceptos especializados, como hashslots y fragmentos de réplica, que los administradores de sistemas tenían que entender y administrar. Junto con el uso de Redis de consistencia eventual en lugar de total, estos conceptos han creado una complejidad que hace que la administración de clústeres sea más desafiante al tiempo que reduce la flexibilidad y la confiabilidad. En contraste, ScaleOut StateServer®, un caché distribuido enfocado en la empresa para objetos serializados lanzado por primera vez en 2005, fue diseñado desde cero para ejecutarse en un clúster de servidores con los objetivos de diseño específicos de alto rendimiento y almacenamiento de datos confiable mientras se maximiza la facilidad de uso. Automatiza el equilibrio de carga, la replicación y la recuperación de datos y almacena datos con total coherencia (es decir, coherencia secuencial) entre réplicas. También ejecuta las solicitudes de los clientes utilizando todos los núcleos de procesamiento disponibles para obtener el máximo rendimiento. Estas características simplifican drásticamente la administración de clústeres, mejoran la flexibilidad y reducen el costo total de propiedad, especialmente para los usuarios empresariales. Por ejemplo, a diferencia de Redis, los clústeres de servidores ScaleOut pueden crecer sin problemas de un solo servidor a varios servidores, y los administradores del sistema no necesitan administrar hashslots o fragmentos de réplica.

El desafío: integrar el procesamiento de comandos de Redis en una nueva arquitectura de clústeres

Software de escalamiento horizontal reconoció que la ejecución de los comandos de Redis en un clúster de ScaleOut StateServer ofrecería a los usuarios lo mejor de ambos mundos: estructuras de datos ricas y familiares combinadas con una administración de clústeres significativamente más simple y consistencia total de datos. Sin embargo, la implementación ideal necesitaría usar el código de código abierto de Redis real para ejecutar comandos de modo que los comandos del cliente se comporten de manera idéntica a los clústeres de Redis de código abierto. Entonces, el desafío consistía en integrar el código de Redis en la plataforma de ejecución de ScaleOut StateServer y aprovechar sus funciones de agrupación en clústeres altamente automatizadas mientras se eliminaban las restricciones de subproceso único de la arquitectura de bucle de eventos de Redis. La empresa logró recientemente esta integración y, en ScaleOut StateServer versión 5.11, lanzó una versión preliminar de la comunidad que presenta soporte para las estructuras de datos de Redis más populares (cadenas, conjuntos, listas, hash y conjuntos ordenados), además de comandos de publicación/suscripción, transacciones y varios comandos de utilidades (como FLUSHDB y EXPIRE) tanto en Windows como en Linux. Utiliza el código de fuente abierta Redis versión 6.2.5 dentro de los servidores para procesar los comandos de Redis.

Operaciones de clúster automatizadas, rendimiento escalable y consistencia total de datos

Con esta integración, los clientes de Redis pueden conectarse a un clúster ScaleOut StateServer de uno o más servidores mediante el protocolo Redis RESP estándar. Las bibliotecas cliente de Redis obtienen la asignación de hashslots a los servidores llamando internamente a los comandos CLUSTER SLOTS o CLUSTER NODES y luego dirigiendo las solicitudes de acceso de Redis al servidor de ScaleOut adecuado. Cuando cambia la membresía del clúster, los clientes usan automáticamente el protocolo RESP para redirigir los comandos a los servidores correctos. Para maximizar el rendimiento, cada servidor de ScaleOut procesa los comandos de Redis entrantes en varios subprocesos utilizando todos los núcleos de procesador disponibles. No es necesario implementar varios fragmentos en cada servidor para escalar el rendimiento o proporcionar replicación de datos; estas funciones se implementan dentro de un proceso en cada servidor. A medida que crece la necesidad de un rendimiento adicional, los administradores de sistemas simplemente pueden unir nuevos servidores al clúster. ScaleOut StateServer reequilibra automáticamente los hashslots en el clúster a medida que se agregan o eliminan servidores. También retrasa la ejecución de los comandos de Redis durante el equilibrio de carga (y la recuperación) para mantener una imagen coherente de la ubicación de hashslot y evitar excepciones de clientes. Después de que un hashslot haya migrado completamente a un servidor remoto, las solicitudes de los clientes devuelven una indicación -MOVED para que puedan ser redirigidos al nuevo servidor. Además, ScaleOut StateServer crea automáticamente réplicas para todos los hashslots. No es necesario crear manualmente fragmentos primarios y réplicas ni moverlos de un servidor a otro durante los cambios de membresía y la recuperación. ScaleOut StateServer coloca automáticamente hashslots de réplica en diferentes servidores desde sus hashslots primarios correspondientes y los migra según sea necesario durante los cambios de membresía para garantizar un equilibrio de carga óptimo. Si un servidor falla o se interrumpe la red, ScaleOut StateServer se “autorrepara” promoviendo réplicas a primarias y creando nuevas réplicas según sea necesario. Redis usa un modelo de coherencia eventual para actualizar las réplicas. Aunque este modelo es rápido, es susceptible de entregar datos obsoletos a los clientes si falla un servidor o se produce una interrupción de la red. Para evitar este problema, ScaleOut StateServer implementa actualizaciones completamente coherentes para los objetos almacenados mediante un algoritmo de quórum patentado. Cuando un servidor recibe un comando de Redis, completa la ejecución del comando en un quórum que contiene el hashslot principal y sus réplicas antes de regresar al cliente. Las transacciones se procesan de la misma manera.

Resumiendo: nuevas capacidades para los usuarios de Redis

La innovadora integración de ScaleOut Software del código fuente abierto de Redis en su arquitectura de clúster traerá nuevas y poderosas capacidades a los usuarios de Redis al tiempo que garantiza el comportamiento nativo de Redis para las aplicaciones cliente. Los usuarios empresariales ahora tienen una forma más sencilla de administrar los clústeres de Redis con la administración de clústeres automatizada y el escalado de rendimiento integrado, y se benefician de las actualizaciones totalmente consistentes de los datos almacenados realizadas por los comandos de Redis. También pueden obtener acceso a las API nativas de ScaleOut StateServer, que incorporan funciones avanzadas que no están disponibles en los clústeres Redis de código abierto, incluida la computación paralela de datos, el análisis de transmisión y la replicación coherente de datos de área amplia.

¿Quiere aprender más sobre ciberseguridad y la nube de los líderes de la industria? Eche un vistazo a Cyber ​​Security & Cloud Expo que tendrá lugar en Ámsterdam, California y Londres. Explore otros próximos eventos y seminarios web de tecnología empresarial impulsados ​​por TechForge aquí. Etiquetas: redis, software de escalabilidad horizontal

Erica Flores

Enamorada de la tecnología. Apasionada de la velocidad que la información puede adquirir en este mundo cambiante. Actualmente residiendo en Barcelona.

Recent Posts

Máquina de mano Lean, Green, Raspberry Pi

Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…

2 years ago

Cómo pronosticar series de tiempo usando autorregresión

Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…

2 years ago

Aquí están todas las formas en que puede cargar su AirPods Pro

Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…

2 years ago

Las principales noticias tecnológicas del lunes: la prohibición de clientes de terceros de Twitter parece no ser un accidente

Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…

2 years ago

AirPods Max 2: aquí están las características más solicitadas

Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…

2 years ago

El remake de Dead Space continúa luciendo terriblemente genial en el nuevo tráiler de la historia

El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…

2 years ago