El proyecto Dragonfly desarrolla una alternativa más rápida a Redis y Memcached.

Está disponible la primera versión del sistema de almacenamiento en caché en memoria Dragonfly, que soporta los protocolos Memcached y Redis, pero permite realizar consultas con un rendimiento mucho más alto y un menor consumo de memoria. El sistema maneja datos en formato clave/valor y puede aplicarse como una solución liviana para acelerar el funcionamiento de sitios web de alto tráfico, almacenando en caché consultas lentas a bases de datos y datos intermedios en memoria. El código de Dragonfly está escrito en C/C++ y se distribuye bajo la licencia BSL (Business Source License).

La licencia BSL fue propuesta por los cofundadores de MySQL como una alternativa al modelo de Código Abierto. La esencia de la BSL es que el código de funcionalidad extendida está inicialmente disponible para modificaciones, pero durante algún tiempo puede utilizarse de forma gratuita solo bajo ciertas condiciones adicionales, para las cuales se requiere la adquisición de una licencia comercial. Las condiciones de licencia adicionales del proyecto Dragonfly estipulan que el código se convertirá a la licencia Apache 2.0 solo el 1 de junio de 2027. Hasta entonces, la licencia permite el uso del código únicamente para garantizar el funcionamiento de sus servicios y productos, pero prohíbe su aplicación para crear servicios en la nube de pago que actúen como capas sobre Dragonfly.

Según los desarrolladores y las pruebas demostradas, Dragonfly reclama el título de sistema de almacenamiento en memoria más rápido. En comparación con Redis, Dragonfly ha logrado un incremento de 25 veces en el rendimiento y una reducción del 75% en el consumo de memoria bajo tipos de carga típicos. servidor Dragonfly puede procesar millones de consultas por segundo; por ejemplo, en un entorno de Amazon EC2 c6gn.16xlarge se logró un rendimiento de 3.8 millones de consultas por segundo.

El proyecto Dragonfly desarrolla una alternativa más rápida a Redis y Memcached.

En pruebas de almacenamiento de 5 GB de datos, Dragonfly requirió un 30% menos de memoria que Redis. Durante la creación de instantáneas con el comando 'bgsave', el consumo de memoria aumenta, pero en momentos pico se mantiene casi tres veces menos que en Redis, y la operación de escritura de la instantánea se realiza significativamente más rápido (en la prueba, la instantánea en Dragonfly se registró en 30 segundos, mientras que en Redis tomó 42 segundos).

El proyecto Dragonfly desarrolla una alternativa más rápida a Redis y Memcached.

El alto rendimiento se logra gracias a una arquitectura multi-thread sin división de recursos (shared-nothing), que implica que a cada hilo se le asigna un manejador separado con su propia porción de datos, funcionando sin mutexes ni bloqueos de tipo spin. Para garantizar la atomicidad en la operación con múltiples claves, se utilizan bloqueos livianos VLL. Para un almacenamiento efectivo de la información en memoria, se aplica una estructura dashtable, que implementa una variante de tablas hash seccionadas.

Entre las capacidades disponibles en la primera versión se destaca el soporte para el protocolo RESP2 y 130 comandos de Redis, lo que corresponde aproximadamente a la funcionalidad de la versión Redis 2.8. Además, Dragonfly soporta todos los comandos de memcached, excepto CAS (check-and-set), proporciona soporte para operaciones asíncronas para la creación de snapshots, asegura un consumo de memoria predecible, incluye un intérprete de Lua 5.4 y soporta tipos de datos complejos como hashes, conjuntos y listas (ZSET, HSET, LIST, SETS y STRING).

Está disponible un modo de caché, en el que automáticamente se asegura el desalojo de datos antiguos por nuevos una vez que se haya agotada la memoria disponible. Es posible vincular a los datos un tiempo de vida, durante el cual se considera que los datos son válidos. El estado del almacenamiento puede ser volcado en disco en segundo plano para su posterior recuperación después de un reinicio. Se proporciona una consola HTTP (asignada al puerto TCP 6379) y una API para la entrega de métricas, compatible con Prometheus. En versiones futuras se planea ampliar el soporte para los comandos de Redis y habilitar la posibilidad de replicación del almacenamiento para asegurar tolerancia a fallos y balanceo de carga.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster