Base de datos de Berkeley


Berkeley DB ( BDB ) es una biblioteca de software destinada a proporcionar una base de datos integrada de alto rendimiento para datos clave/valor . Berkeley DB está escrito en C con enlaces API para C++ , C# , Java , Perl , PHP , Python , Ruby , Smalltalk , Tcl y muchos otros lenguajes de programación . BDB almacena pares de clave/datos arbitrarios como matrices de bytes y admite varios elementos de datos para una sola clave. Berkeley DB no es una base de datos relacional ,[2] aunque tiene funciones de base de datos avanzadas que incluyen transacciones de base de datos , control de concurrencia multiversión y registro de escritura anticipada .

BDB puede admitir miles de subprocesos simultáneos de control o procesos simultáneos que manipulan bases de datos de hasta 256 terabytes, [3] en una amplia variedad de sistemas operativos, incluidos la mayoría de los sistemas tipo Unix y Windows , y sistemas operativos en tiempo real .

BDB fue desarrollado y respaldado comercialmente por Sleepycat Software de 1996 a 2006. Sleepycat Software fue adquirido por Oracle Corporation en febrero de 2006, que continúa desarrollando y vendiendo la biblioteca C Berkeley DB. En 2013, Oracle volvió a obtener la licencia de BDB bajo la licencia AGPL . [4] [5] A partir de 2022, Bloomberg LP continúa desarrollando una bifurcación de BDB dentro de su base de datos Comdb2 , bajo la licencia permisiva original de Sleepycat .

Berkeley DB se originó en la Universidad de California, Berkeley, como parte de BSD , la versión de Berkeley del sistema operativo Unix . Después de 4.3BSD (1986), los desarrolladores de BSD intentaron eliminar o reemplazar todo el código que se originaba en el AT&T Unix original del que se derivó BSD. Al hacerlo, necesitaban reescribir el paquete de base de datos de Unix. [6] Seltzer y Yigit [7] crearon una nueva base de datos, libre de cualquier patente de AT&T: una tabla hash en disco que superó a las bibliotecas dbm existentes. Berkeley DB se lanzó por primera vez en 1991 y luego se incluyó con 4.4BSD. [6] En 1996 Netscapesolicitó que los autores de Berkeley DB mejoraran y ampliaran la biblioteca, luego en la versión 1.86, para adaptarse a los requisitos de Netscape para un servidor LDAP [8] y para su uso en el navegador Netscape . Esa solicitud condujo a la creación de Sleepycat Software . Esta empresa fue adquirida por Oracle Corporation en febrero de 2006, que continúa desarrollando y vendiendo Berkeley DB.

Desde su lanzamiento inicial, Berkeley DB ha pasado por varias versiones. Cada ciclo de lanzamiento importante ha introducido una sola característica principal nueva que generalmente se superpone a las características anteriores para agregar funcionalidad al producto. Las versiones 1.x se centraron en la gestión del almacenamiento de datos clave/valor y se denominan "Almacén de datos" (DS). Las versiones 2.x agregaron un sistema de bloqueo que permite el acceso simultáneo a los datos. Esto es lo que se conoce como "Concurrent Data Store" (CDS). Las versiones 3.x agregaron un sistema de registro para transacciones y recuperación, llamado "Almacén de datos transaccionales" (TDS). Las versiones 4.x agregaron la capacidad de replicar registros y crear una base de datos distribuida de alta disponibilidad con múltiples réplicas maestras. Esto se denomina conjunto de funciones de "alta disponibilidad" (HA). Berkely DB' La evolución de s a veces ha llevado a cambios menores en la API o cambios en el formato de registro, pero muy rara vez han cambiado los formatos de la base de datos. Berkeley DB HA admite actualizaciones en línea de una versión a la siguiente al mantener la capacidad de leer y aplicar los registros de la versión anterior.

Los sistemas operativos FreeBSD y OpenBSD siguen utilizando Berkeley DB 1.8x por motivos de compatibilidad; [9] [ dudoso ] Los sistemas operativos basados ​​en Linux comúnmente incluyen varias versiones para adaptarse a las aplicaciones que aún usan interfaces/archivos más antiguos.