Una base de datos en memoria ( IMDb , o sistema de base de datos de memoria principal ( MMDB ) o base de datos residente en memoria ) es un sistema de gestión de bases de datos que se basa principalmente en la memoria principal para el almacenamiento de datos informáticos . Se contrasta con los sistemas de gestión de bases de datos que emplean un mecanismo de almacenamiento en disco . Las bases de datos en memoria son más rápidas que las bases de datos optimizadas en disco porque el acceso al disco es más lento que el acceso a la memoria y los algoritmos de optimización interna son más simples y ejecutan menos instrucciones de CPU. El acceso a los datos en la memoria elimina el tiempo de búsqueda al consultar los datos, lo que proporciona un rendimiento más rápido y predecible que el disco. [1] [2]
Las aplicaciones en las que el tiempo de respuesta es crítico, como las que ejecutan equipos de redes de telecomunicaciones y redes de publicidad móvil , a menudo utilizan bases de datos de memoria principal. [3] Las IMDB han ganado mucha tracción, especialmente en el espacio de análisis de datos , a partir de mediados de la década de 2000 , principalmente debido a los procesadores de múltiples núcleos que pueden abordar una memoria grande y debido a la RAM menos costosa . [4] [5]
Un posible obstáculo técnico con el almacenamiento de datos en memoria es la volatilidad de la RAM. En particular, en caso de una pérdida de energía, intencional o no, los datos almacenados en la RAM volátil se pierden. [6] Con la introducción de la tecnología de memoria de acceso aleatorio no volátil , las bases de datos en memoria podrán funcionar a toda velocidad y mantener los datos en caso de un corte de energía. [7] [8] [9]
En su forma más simple, las bases de datos de la memoria principal almacenan datos en dispositivos de memoria volátil . Estos dispositivos pierden toda la información almacenada cuando se queda sin energía o se reinicia. En este caso, se puede decir que las IMDB carecen de compatibilidad con la parte de "durabilidad" de las propiedades ACID (atomicidad, consistencia, aislamiento, durabilidad). Las IMDB basadas en memoria volátil pueden admitir, y a menudo lo hacen, las otras tres propiedades ACID de atomicidad, consistencia y aislamiento.
Muchos IMDB han añadido durabilidad a través de los siguientes mecanismos:
Algunas IMDB permiten que el esquema de la base de datos especifique diferentes requisitos de durabilidad para áreas seleccionadas de la base de datos; por lo tanto, los datos que cambian más rápido y que se pueden regenerar fácilmente o que no tienen significado después de un apagado del sistema no necesitarían registrarse para su durabilidad (aunque tendrían que replicarse para lograr una alta disponibilidad), mientras que la información de configuración se marcaría como que necesita preservación.
Si bien el almacenamiento de datos en memoria ofrece ventajas de rendimiento, es un método costoso de almacenamiento de datos. Una forma de aprovechar los beneficios del almacenamiento en memoria y limitar sus costos es almacenar los datos a los que se accede con mayor frecuencia en memoria y el resto en disco. Dado que no existe una distinción estricta entre qué datos se deben almacenar en memoria y cuáles en disco, algunos sistemas actualizan dinámicamente dónde se almacenan los datos en función del uso de los mismos. [10] Este enfoque es sutilmente diferente del almacenamiento en caché , en el que se almacenan en caché los datos a los que se accedió más recientemente , en lugar de almacenar en memoria los datos a los que se accede con mayor frecuencia .
La flexibilidad de los enfoques híbridos permite lograr un equilibrio entre:
En la industria de la computación en la nube , han surgido los términos "temperatura de los datos" o "datos calientes" y "datos fríos" para describir cómo se almacenan los datos en este sentido. [11] Los datos calientes se utilizan para describir datos de misión crítica a los que se debe acceder con frecuencia, mientras que los datos fríos describen datos que se necesitan con menos frecuencia y con menos urgencia, como los datos guardados para fines de archivo o auditoría. Los datos calientes deben almacenarse de manera que ofrezcan una recuperación y modificación rápidas, lo que a menudo se logra mediante almacenamiento en memoria, pero no siempre. Los datos fríos, por otro lado, se pueden almacenar de una manera más rentable y se acepta que el acceso a los datos probablemente será más lento en comparación con los datos calientes. Si bien estas descripciones son útiles, "caliente" y "frío" carecen de definiciones concretas. [11]
La eficiencia de fabricación es otro motivo para seleccionar un sistema de base de datos combinado en memoria y en disco. Algunas líneas de productos de dispositivos, especialmente en electrónica de consumo , incluyen algunas unidades con almacenamiento permanente y otras que dependen de la memoria para el almacenamiento ( por ejemplo, los decodificadores ). Si dichos dispositivos requieren un sistema de base de datos, un fabricante puede adoptar un sistema de base de datos híbrido a un coste más bajo y más alto , y con menos personalización del código, en lugar de utilizar bases de datos independientes en memoria y en disco, respectivamente, para sus productos sin disco y con disco.
El primer motor de base de datos que admitía tablas en memoria y en disco en una única base de datos, WebDNA , se lanzó en 1995.
Otra variante implica grandes cantidades de memoria no volátil en el servidor, por ejemplo, chips de memoria flash como memoria direccionable en lugar de estructurada como matrices de discos. Una base de datos en esta forma de memoria combina una velocidad de acceso muy rápida con persistencia a pesar de reinicios y cortes de energía. [12]
{{cite web}}
: CS1 maint: estado de la URL ( enlace )