Almacenamiento Garnet de código abierto de Microsoft compatible con Redis

Microsoft ha liberado el código fuente del sistema NoSQL Garnet, diseñado para crear almacenes de caché y compatible con las bibliotecas cliente existentes para el almacenamiento Redis. Garnet admite la creación de clústeres escalables para el almacenamiento en caché de datos, que pueden utilizar replicación, migración de claves y fragmentación de datos entre los nodos del clúster. El proyecto está escrito en C# con un motor de almacenamiento en C++, es de código abierto bajo la licencia MIT y puede ejecutarse en todas las plataformas compatibles con .NET (las plataformas principales son Linux и Windows).

Para almacenar datos, se utiliza el motor Tsavorite (una bifurcación del almacenamiento MÁS RÁPIDO de Microsoft), que admite el procesamiento de consultas multiproceso, transacciones, la confirmación de cambios en un modo sin bloqueo (puntos de control), la recuperación de fallas, el almacenamiento de copias redundantes y el mantenimiento de un registro de operaciones. El motor de red de Garnet se construye utilizando la arquitectura de memoria compartida propuesta por el proyecto de investigación ShadowFax. El procesamiento TLS y la interacción con el almacenamiento se realizan en un solo subproceso, lo que permite evitar la sobrecarga de cambiar de subproceso y utilizar de manera más eficiente la memoria caché de la CPU al transferir datos a través de la red.

La arquitectura Garnet separa la lógica para analizar y procesar solicitudes de las operaciones de almacenamiento. Los datos se almacenan utilizando dos almacenes clave-valor basados ​​en la biblioteca Tsavorite. El primer almacén "principal" está optimizado para operaciones rápidas de cadenas, y el segundo almacén "de objetos" está optimizado para acomodar objetos complejos y tipos de datos avanzados como hashes y listas. Los tipos de datos en el segundo almacenamiento se implementan mediante bibliotecas .NET. Los datos se almacenan en el montón (montón C#), lo que permite actualizarlos de manera eficiente y en forma serializada en el disco.

Almacenamiento Garnet de código abierto de Microsoft compatible con Redis

Características del granate:

  • Es posible implementar almacenamiento de varios niveles, que abarque RAM, unidades SSD y almacenamiento en la nube, en el que los datos menos demandados se almacenan en un almacenamiento lento para crear cachés más grandes que la RAM.
  • Soporte de dispositivos extensible, que permite la creación de capas optimizadas para funcionar con diferentes dispositivos, por ejemplo, hay capas para SDD, discos duros y almacenamiento en la nube de Azure Storage.
  • Un mecanismo eficaz para reutilizar el espacio liberado en la RAM, evitando la fragmentación.
  • Límites configurables en el tamaño de la memoria utilizada para índices, registros y almacenamiento de objetos.
  • El protocolo RESP se utiliza para acceder al almacenamiento, lo que permite utilizar Garnet con clientes Redis no modificados.
  • Admite el almacenamiento tanto de valores de cadena como de estructuras de datos complejas, como listas, hashes, conjuntos, listas ordenadas y datos de geolocalización. Capacidad para determinar la vida útil de la clave.
  • Disponibilidad de API para realizar consultas analíticas (HLL/Hyperloglog, Bitmap), transacciones (MULTI/EXEC) y utilizar el paradigma de publicación/suscripción.
  • Disponibilidad de medios para el control de acceso flexible vía ACL.
  • Capacidad para definir la configuración en formato JSON o redis.conf.
  • Soporte para conectar controladores de red adicionales. Capacidad para cifrar el tráfico mediante TLS (basado en SslStream).
  • La capacidad de crear extensiones en C# que implementen operaciones adicionales con cadenas y objetos.
  • Soporte para procedimientos almacenados transaccionales que abarcan múltiples claves.
  • Capacidad de restaurar el estado desde una posición previamente guardada (punto de control-recuperación). La presencia de un modo de archivo de solo agregar (AOF, archivo de solo agregar), en el que todos los datos antiguos permanecen disponibles y no se reemplazan.
  • Soporte para crear un clúster de almacenamiento con replicación, fragmentación, migración dinámica de claves entre nodos y recuperación de nodos fallidos.
  • Alto rendimiento y baja latencia al ejecutar consultas. Procesamiento eficiente de consultas de lotes pequeños con un gran número de sesiones de cliente, lo que permite un rendimiento (número de consultas procesadas por segundo) un orden de magnitud superior al de las soluciones de la competencia. Al ejecutarse en máquinas virtuales En la nube de Azure, la latencia del cliente no supera los 300 microsegundos en la mayoría de los casos. En las pruebas realizadas, Garnet supera significativamente a Redis, Dragonfly y KeyDB en rendimiento y capacidad de respuesta. En algunas pruebas, Garnet supera a los sistemas de la competencia por un factor de diez.
    Almacenamiento Garnet de código abierto de Microsoft compatible con Redis
    Almacenamiento Garnet de código abierto de Microsoft compatible con Redis
    Almacenamiento Garnet de código abierto de Microsoft compatible con Redis
    Almacenamiento Garnet de código abierto de Microsoft compatible con Redis

Fuente: opennet.ru

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster