CockroachDB es un sistema de gestión de bases de datos SQL distribuido y disponible en código fuente desarrollado por Cockroach Labs. [2] [3] La funcionalidad relacional se basa en un almacén de clave-valor consistente, transaccional y distribuido que puede sobrevivir a una variedad de diferentes fallas de infraestructura subyacente, y es compatible con PostgreSQL , lo que significa que los usuarios pueden aprovechar una amplia gama de controladores y herramientas del extenso ecosistema PostgreSQL. Un clúster de CockroachDB consta de una serie de nodos que se pueden distribuir en dominios de falla, como centros de datos o regiones de nube pública. Un clúster se puede escalar tanto horizontalmente [4] (agregando nodos) como verticalmente (aumentando los recursos asignados a los nodos existentes). Puede proporcionar altos niveles de resiliencia y disponibilidad y se puede ejecutar en una variedad de entornos, como hardware, máquinas virtuales , contenedores y Kubernetes , tanto en centros de datos privados como en la nube. CockroachDB recibe su nombre de las cucarachas, ya que son conocidas por ser resistentes a los desastres. [5]
Cockroach Labs fue fundada en 2015 por los ex empleados de Google Spencer Kimball , Peter Mattis y Ben Darnell . Kimball y Mattis habían sido miembros clave del equipo del Sistema de Archivos de Google , [6] mientras que Darnell era un miembro clave del equipo de Google Reader . [7]
Mientras trabajaban en Google, los tres habían utilizado Bigtable , el DBMS de Google, y su sucesor, Spanner . [3] Después de dejar Google, querían diseñar y construir algo similar. [8] Spencer Kimball escribió la primera iteración del diseño en enero de 2014 y comenzó el proyecto de código abierto en GitHub en febrero de 2014, lo que permitió el acceso y las contribuciones externas. [9]
El desarrollo en GitHub atrajo contribuciones sustanciales, lo que le valió al proyecto el premio Novato de código abierto del año otorgado por Black Duck Software. [10]
Los cofundadores apoyaron el proyecto con conferencias, networking, reuniones y rondas financieras de recaudación de fondos.
En junio de 2019, Cockroach Labs anunció que CockroachDB cambiaría su licencia de software libre Apache License 2.0 a su licencia de código fuente disponible , conocida como Business Source License (BuSL) , que prohíbe "ofrecer una versión comercial de CockroachDB como servicio sin comprar una licencia", mientras sigue siendo gratuita para uso comunitario. [11] [12]
CockroachDB almacena copias de datos en múltiples ubicaciones para brindar un acceso rápido. [8] [13]
Se describe como un almacén de datos transaccionales , escalable y replicado de manera consistente . [14] Una sola instancia puede escalar desde una sola computadora portátil a miles de servidores. [3]
CockroachDB está diseñado para ejecutarse en la nube y tiene una alta tolerancia a fallos . Según los medios de comunicación populares, se describe como "casi imposible" de desmantelar. [15] [16] [13]
CockroachDB tiene un modelo de consistencia que está diseñado para coincidir lo más posible con las capacidades de Google Spanner , pero sin depender de hardware especializado para la sincronización de tiempo. "Sin lecturas obsoletas" es la forma más simple de describir este modelo de consistencia que ha hecho deliberadamente la compensación de tener historiales de transacciones no linealizables. [17] Se garantiza que las transacciones que contienen claves superpuestas tienen consistencia externa. Y así, en la práctica, es muy poco probable que los sistemas que dependen de CockroachDB reproduzcan problemas de consistencia porque los nodos con altas variaciones en el desfase de reloj se pueden eliminar de los clústeres, las aplicaciones pueden confiar en la consistencia externa proporcionada por las claves superpuestas y la escritura en el mismo rango, y las escrituras propagan los cambios a los cachés de marcas de tiempo de los seguidores. [18]