Drizzle es un sistema de gestión de bases de datos relacionales (DBMS) de software libre / código abierto descontinuado que se bifurcó de la ahora desaparecida rama de desarrollo 6.0 del DBMS MySQL . [2]
Al igual que MySQL, Drizzle tenía una arquitectura cliente/servidor y utiliza SQL como lenguaje de comando principal . Los archivos antiguos de Drizzle se distribuyen bajo las versiones 2 y 3 de la Licencia Pública General GNU (GPL) con partes, incluidos los controladores de protocolo y los mensajes de replicación bajo la licencia BSD .
Brian Aker realizó los primeros trabajos en la bifurcación a mediados de 2008 . [3] El desarrollo continuo estuvo a cargo de un equipo de colaboradores que incluía miembros del personal de Canonical Ltd. , Google , Six Apart , Sun Microsystems , Rackspace , Data Differential, Blue Gecko, Intel , Percona , Hewlett-Packard , Red Hat y otros. . [4] El código fuente de Drizzle, junto con las instrucciones para compilarlo, están disponibles a través del sitio web Launchpad del proyecto . [5]
En octubre de 2010, Drizzle tenía 13.478 contribuciones totales, 96 contribuyentes totales y 37 contribuyentes activos. [6] También se anunció que Drizzle había entrado en Beta. [7] La primera versión GA se lanzó en marzo de 2011. [8] Drizzle ha participado activamente en el proyecto Google Summer of Code desde 2010. [9] [10] [11] [12]
A finales de 2013 la fase activa del proyecto había llegado a su fin. En julio de 2016, los mantenedores concluyeron que había llegado el momento de "terminar las cosas oficialmente" porque "ya ninguno de nosotros tiene tiempo para dedicarle a Drizzle". [13]
Drizzle está dirigido a los mercados de infraestructura web y computación en la nube . Los desarrolladores del producto lo describen como una "versión más pequeña, más delgada y (con suerte) más rápida de MySQL". [14]
Drizzle está escrito en el lenguaje de programación C++ y almacena sus datos de cadena en formato UTF-8 . Se está desarrollando para sistemas operativos modernos tipo Unix , incluidos Linux , FreeBSD , Mac OS X y Solaris ; en general, cualquier sistema operativo que se ajuste a POSIX y tenga una implementación funcional de GNU Autotools . Microsoft Windows no es compatible en este momento, principalmente por falta de soporte para Autotools, pero ha habido muchas discusiones sobre cómo lograrlo de manera sensata.
Drizzle es una versión rediseñada del código base MySQL v6.0 y está diseñada en torno al concepto central de tener una arquitectura de microkernel . Funciones como la caché de consultas y el sistema de autenticación son ahora complementos de la base de datos, que siguen el tema general de "motores de almacenamiento conectables" que se introdujeron en MySQL 5.1. Admite PAM , LDAP y HTTP AUTH para la autenticación a través de los complementos que incluye. A través de su sistema de complementos, actualmente admite el registro de archivos, syslog y servicios remotos como RabbitMQ y Gearman . Drizzle es una base de datos relacional compatible con ACID que admite transacciones a través de un diseño MVCC . [15]
Se han agregado puntos de complemento para admitir replicación , motores de almacenamiento , reescritura de consultas, funciones de tablas, funciones definidas por el usuario , adaptadores de protocolo y múltiples cachés de consultas.
Al igual que MySQL, Drizzle admite múltiples motores simultáneos. A través de esto, Drizzle incluye soporte integrado para árboles B+ e índices hash . El planificador de consultas de Drizzle es capaz de utilizar múltiples índices, de múltiples motores para satisfacer consultas complejas, utilizando un índice de operaciones de mapa de bits temporal en memoria .
Los activadores de bases de datos en Drizzle son compatibles con DML , DDL y varias operaciones adicionales basadas en eventos en el servidor. El sistema de transmisión PrimeBase BLOB, que permite a Drizzle transmitir objetos binarios grandes (BLOB) a través de HTTP, utiliza este sistema. Actualmente, todos los activadores de Drizzle deben estar escritos en C++.
Cualquier consulta que se envíe al servidor se puede combinar y reescribir dinámicamente. Esta acción se realiza antes de que se produzca el análisis .
Se admite una amplia variedad de tipos de datos nativos, que incluyen:
Gracias al soporte del comando EXECUTE, Drizzle puede operar SQL dinámico de múltiples declaraciones. A través de la palabra clave CONCURRENT puede operar estas declaraciones en paralelo .
La replicación en Drizzle se realiza generando "mensajes" utilizando la biblioteca Google Protocol Buffers . Luego, estos mensajes se almacenan y ejecutan en servidores remotos. El formato del mensaje es un formato neutral no SQL que ha permitido a Drizzle tener aplicadores de replicación para RabbitMQ, Memcached , MySQL, Voldemort y Apache Cassandra .
Drizzle tiene la licencia de las versiones dos y tres de la GPL, con algunas partes, como la biblioteca cliente libdrizzle, bajo la licencia BSD .
{{cite web}}
: CS1 maint: archived copy as title (link)