Saltar al contenido

Qué es una Base de Datos en Memoria IMDB

base de datos en memoria

Los sistemas de bases de datos son software encargados de almacenar grandes volúmenes de datos e información. Esta información está disponible para ser consultada y procesada por los usuarios u otros sistemas. Los sistemas y tecnologías de la información actual generan volúmenes gigantescos de datos. Debido al gran cúmulo de información existente, muchas veces los procesos de consulta, manipulación y borrado de datos de las bases de datos convencionales resulta muy lento e ineficiente.

Una de las soluciones que surgen para ayudar en el procesamiento de estos grandes volúmenes de datos, son las bases de datos en memoria. En el siguiente artículo te contamos que es una base de datos en memoria y cómo funcionan. Además, podrás ver una comparación en cuanto a las ventajas y desventajas de este tipo de base de datos. Te invito a que continúes leyendo, ya comenzamos.

Tabla de contenidos

Base de datos en memoria

Las bases de datos en memoria IMDB (siglas en ingles de In-Memory Data Base), es un sistema de gestión de bases de datos con una característica particular. Esta característica es que, los datos son almacenados directamente en la memoria RAM del ordenador, o del conjunto de ordenadores que conforman el ambiente de la base de datos.

Memoria RAM.
Memoria RAM.

Que un sistema de datos emplee la memoria RAM para almacenar estos datos, tiene una ventaja superior en cuanto a la velocidad de lectura y procesamiento de los datos. De esta manera, la transmisión de datos a partir de estos sistemas es mucho más eficiente que en los sistemas de base de datos tradicionales.

Funcionamiento de las bases de datos en memoria

Como ya mencionábamos anteriormente, una base de datos en memoria puede almacenar grandes volúmenes de datos, siempre en dependencia de la capacidad de RAM que exista. Además, a partir de estas podemos obtener un gran cúmulo de resultados en cuanto al análisis de datos se refiere.

A continuación, veremos la manera que una base IMDB almacena los datos, las tecnologías empleadas en estas, y los procesos que ocurren para garantizar las copias de seguridad de las bases de datos en memoria.

Almacenamiento de datos en una IMDB

La información se almacena en una base de datos en memoria utilizando un almacenamiento basado en filas, o basado en columnas. Incluso puede llegar a realizarse un almacenamiento que combine ambas técnicas.

El almacenamiento basado en filas organiza las tuplas de datos en una misma fila. Es decir, supongamos que tenemos tuplas que almacenan información referente a un Nombre, Ciudad y País. Si utilizamos la organización basada en filas, cada registro se guardaría de la forma “nombre A”, “ciudad A”, “país A”. Una segunda tuplas sería “nombre B”, “ciudad B”, “país B” y así sucesivamente para el resto de tuplas.

En el caso de establecer una organización basada en columnas, las tuplas son clasificadas en función de su categoría. Continuando con el ejemplo, tendríamos una tupla “nombre A”, “nombre B”, otra como “ciudad A”, “ciudad B” y una tercera “país A”, “país B”.

Esta última forma de almacenar los datos se conoce como Column Store Format.. Utilizando esta técnica, el sistema es capaz de minimizar el volumen de datos, obteniendo un mejor rendimiento de procesamiento.

Por otro lado, un análisis sobre un sistema organizado en columnas es más efectivo, ya que solo serie necesario analizar ciertas columnas en lugar de todas. A este tipo de análisis basado en una organización en columnas, se le conoce como proyección columnar.

Tecnologías involucradas en el procesamiento de bases de datos en memoria

Las bases de datos en memoria no es un concepto para nada nuevo. De hecho, los fundamentos de estas bases de datos datan de la década de 1980. No obstante, por esta época no tuvieron demasiado éxito, sobre todo debido al pobre desarrollo tecnológico que había por esos años.

Las bases de datos en memoria suelen estar relacionadas a un almacén de datos o Data Warehouse. Estos almacenes de datos son muy útiles en cuanto al análisis histórico de enormes volúmenes de datos. Su estructura simplifica la obtención y análisis de la información.

Por otro lado, el surgimiento de las arquitecturas de 64 bits permitió incrementar la capacidad de almacenamiento de la memoria principal hasta llegar a capacidades del orden de los terabytes. Esto provocó un crecimiento en tamaño de las IMDB.

Además, los microprocesadores de múltiples núcleos integrados en el mismo chip proporcionan un mayor rendimiento y una capacidad de almacenamiento de datos muy superior. Otro de los factores que posibilitaron el auge de las IMDB fue la disminución de los costes de producción y avances tecnológicos de las memorias RAM.

Salva de datos

Cuando una base de datos en memoria se está ejecutando, ocurren varios procesos. Algunos de estos están involucrados en las salvas o copias de seguridad de la información. Para realizar las copias de seguridad de una base de datos en memoria, esta transita por los siguientes procesos:

  • Inicio de la base de datos cargando toda la información almacenada en el disco duro hacia la memoria RAM. Este proceso implica que, durante la ejecución de la base de datos en memoria, no ocurre ninguna carga hacia la RAM, ya que este proceso se ejecuta totalmente al iniciar.
  • Comprobación de modificaciones en los datos. La información de la base de datos es ajustada cada cierto intervalo para aplicar modificaciones en los datos.
  • Se registran copias de todo el registro de transacciones realizadas. En caso de ocurrir algún tipo de error, estas salvas permiten a la base de datos recuperarse a un estado anterior al error, lo cual se conoce como rollforward.
  • Se aplican los principios de atomicidad, aislamiento, durabilidad y consistencia a los datos procesados.
  • El proceso de gestión de la IMDB realiza una replicación continua de los datos hacia algún servidor u ordenador. De esta manera se realizan las copias de seguridad de la información contenida en la base de datos.

Ventajas de las IMDB

Como ya hemos descrito anteriormente, el principal potencial de una base de datos en memoria es respecto a las velocidades de acceso a la información que almacena. A partir de dichas prestaciones en cuanto a velocidad, también tenemos un mayor rendimiento en cuanto al procesamiento de la información se refiere.

Por otro lado, otra del las ventajas es que estas posibilitan el procesado de datos estructurados y no estructurados independientemente del sistema donde estén. En este sentido tenemos el almacenamiento y procesado de grandes volúmenes de textos, imágenes, videos o audios.

Para el procesado de datos no estructurados se emplean infraestructuras distribuidas. De esta manera, la información es almacenada en distintas unidades de procesamiento pero que trabajan de manera paralela. Estas tareas son distribuidas entre diferentes clústeres de servidores. Siendo así, se maneja un mayor rendimiento y velocidad en la transferencia y procesado de los datos.

Desventajas de las IMDB

La principal desventaja de estas bases de datos se refiere a la volatilidad de la información que se almacena en la memoria RAM. Como todos conocen, la RAM es una memoria de información de corto plazo. Es decir, cuando el ordenador se apaga, ya sea un apagado planificado o ante una falla, la información almacenada en la RAM se borra.

Esto puede ocasionar perdidas de información en las bases de datos en memoria. Para mitigar esta cuestión, se realizan salvas de seguridad de todo el registro de transacciones de la IMDB. Además, se crean archivos de instantánea, guardando completamente el estado actual de la base de datos. Este últimos puede ser un proceso lento, por tanto, se realiza a intervalos de tiempos mayores.

Otra de las formas de mitigar este defecto es mediante el uso de una RAM no volátil. Este tipo de RAM permite recuperar los datos aún después de que ocurra un fallo que reinicie el sistema. Por otro lado, una técnica que emplean la gran mayoría de las IMDB, es la de replicar exactamente toda la información hacia el disco duro. En caso de que ocurra algún fallo, simplemente se restaura la información desde el disco duro.

Otra de las desventajas de las bases de datos en memoria, es la limitación de espacio de almacenamiento de la memoria RAM. Una sola memoria RAM posee muy poco espacio de almacenamiento como para almacenar gigantescos volúmenes de datos.

En este sentido se pueden enlazar varios ordenadores que comparten a la red los recursos de RAM que no utilicen. Un software especial se encarga de administrar estos recursos como si se tratara de un ordenador virtual, y de esta manera se proporciona mayor espacio de almacenamiento para las IMDB.