rqlite 7.0 ya fue liberado y estas son sus novedades
Hace poco se dio a conocer el lanzamiento del DBMS distribuido rqlite 7.0, en la cual en esta nueva versión se presenta una nueva integración de descubrimiento de nodos con Consul y etcd. Al usar uno de esos sistemas con rqlite, la agrupación automática de rqlite es mucho más fácil, ademas de que el modo Discovery heredado no es compatible con la versión 7.0, pero es posible que lo sea en una versión futura.
Para quienes desconocen de rqlite, deben saber que este que utiliza SQLite como motor de almacenamiento y permite organizar el funcionamiento de un clúster a partir de almacenamientos sincronizados entre sí.
De las características de rqlite, se destaca que es fácil de instalar, implementar y mantener un almacenamiento tolerante a fallas distribuido, algo similar a etcd y Consul , pero utilizando un modelo de datos relacional en lugar de un formato clave/valor.
El algoritmo de consenso de Raft se utiliza para mantener todos los nodos sincronizados . Rqlite utiliza la biblioteca SQLite original y el controlador go-sqlite3 , además de lo cual ejecuta una capa que procesa las solicitudes de los clientes, realiza la replicación a otros nodos y supervisa el consenso sobre la elección del nodo líder.
Los cambios en la base de datos solo pueden ser realizados por el nodo que se selecciona como líder, pero las conexiones de escritura se pueden dirigir a otros nodos del clúster, que devolverán la dirección del líder para repetir la solicitud.
El énfasis principal está en la tolerancia a fallas, por lo que DBMS se escala solo en lecturas y las escrituras son el cuello de botella. Es posible ejecutar un clúster rqlite desde un solo nodo y dicha solución se puede usar para brindar acceso a SQLite a través de HTTP sin proporcionar tolerancia a fallas.
Los datos de SQLite en cada nodo no se almacenan en un archivo, sino en la memoria. A nivel de capa con la implementación del protocolo Raft, se mantiene un registro de todos los comandos de SQLite que conducen a un cambio de base de datos.
Este registro se usa para la replicación (replicación de nivel de reproducción en otros nodos), al iniciar un nuevo nodo o para recuperarse de una pérdida de conectividad. Para reducir el tamaño del registro, se utiliza el empaquetado automático, que comienza después de un número específico de cambios y conduce a la confirmación de una instantánea, en relación con la cual se inicia un nuevo registro (el estado de la base de datos en la memoria es idéntico a la instantánea + el registro de cambios acumulados).
Principales novedades de rqlite 7.0
En esta nueva versión que se presenta podremos encontrar que se agregó el soporte para el agrupamiento automático de rqlite utilizando un nuevo servicio de descubrimiento de nodos que puede ejecutarse en el almacenamiento distribuido de Consul y etcd. Como tal el servicio permite que los nodos rqlite se encuentren automáticamente: el administrador solo necesita ejecutar varios nodos en diferentes servidores especificando la dirección común del clúster Consul o etcd (por ejemplo, «example.com:8500»), y los nodos agruparse automáticamente.
El nodo líder actualiza periódicamente la información sobre su dirección en el almacenamiento de Consul o etcd, lo que permite cambiar el líder en el futuro sin necesidad de reconfigurar los nodos restantes, así como agregar nuevos nodos incluso después de que el líder haya cambiado.
Otro de los cambios que se destaca es que se suspendió la compatibilidad con el antiguo servicio de modo Discovery con tecnología de AWS Lambda.
Ademas de ello en la interfaz CLI, se permite especificar varios hosts a la vez: si el primer nodo no está disponible, se contactará con los siguientes hosts.
Tambien se destaca que el código rediseñado para analizar argumentos de línea de comando rqlited y que el paquete protobuf en desuso ha quedado en desuso.
Mientras que el almacenamiento BoltDB utilizado en la implementación del protocolo Raft ha sido reemplazado por bbolt, una bifurcación del proyecto etcd.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.