saltar al contenido

Ventajas y desventajas de una base de datos en memoria

El ingeniero jefe Jeff Parsons analiza las ventajas y desventajas de bases de datos en memoria. Jeff utiliza los principios de ACID como núcleo de su comparación. Conozca también lo que ofrece Raima como solución de gestión de datos en memoria.

 

Transcripciones

Me gustaría discutir las ventajas junto con las desventajas de lo que llamamos "en memoria bases de datos“. En primer lugar, ¿cuál es la diferencia entre una base de datos en memoria y simplemente almacenar datos en segmentos de memoria compartida? Tradicionalmente, las bases de datos se pueden caracterizar por los cuatro atributos comúnmente referidos por el acrónimo ACID: Atomicidad, Consistencia, Aislamiento y Durabilidad. Tan pronto como dejas de conservar una base de datos, pierdes durabilidad. Entonces esto es lo que se pierde con una base de datos en memoria. Aparte de los métodos para copiar el contenido de la base de datos a otra ubicación duradera, una base de datos en memoria puede estar sujeta a la pérdida de datos si algo deja de funcionar.

Los atributos restantes; la atomicidad, la coherencia y el aislamiento son los que diferencian una base de datos en memoria de los datos simples que se encuentran en una memoria compartida. Atomicidad es la palabra que se usa para describir el comportamiento transaccional en el que todos los cambios se comprometen en la base de datos como una operación de todo o nada. Aislamiento es la palabra que se usa para describir los cambios transaccionales que ven otros procesos. Nunca se les puede permitir ver transacciones parciales. En su forma más básica, la memoria compartida no impone la atomicidad ni el aislamiento. Eso está bien siempre que solo haya un proceso que utilice los datos, pero eso anula el propósito de la memoria compartida.

La coherencia de la base de datos significa que las reglas y relaciones estructurales se mantienen para todos los usuarios. La aplicación de la coherencia de la base de datos requiere compartir códigos y definiciones de datos comunes. Por supuesto, esto se puede hacer con memoria compartida, pero un sistema de base de datos tendrá una definición de código y datos incorporada y lista para usar. Por lo tanto, independientemente de si sus datos son duraderos o están en memoria, aún necesita la funcionalidad de la base de datos si sus datos son compartidos o complicados, y eso no es fácil de hacer usted mismo.

La principal razón para mantener una base de datos en memoria es el rendimiento. Leer y escribir datos que están puramente en la memoria es más rápido que los datos almacenados en el disco o en una unidad flash. La desventaja correspondiente es que todos los datos deben caber en la memoria. Esto es cada vez más asequible, pero el tamaño de la memoria sigue siendo de varios gigabytes, mientras que el tamaño del disco puede ser de varios terabytes. Es necesario comprar la memoria adecuada o limitar el tamaño de la base de datos. ¿Cómo implementa Raima un sistema de base de datos en memoria en RDM? Le permitimos declarar una base de datos completa o una selección de tablas en la base de datos como en la memoria. Eso es todo lo que tienes que hacer. Lo implementamos a través de nuestro servidor de archivos transaccionales y biblioteca de tiempo de ejecución.

El servidor de archivos transaccionales es un proceso independiente que controla los archivos de la base de datos y mantiene la atomicidad y el aislamiento para todos los usuarios en la misma computadora o en otras. La biblioteca en tiempo de ejecución está vinculada al código de la aplicación. Escribe y lee las páginas de la base de datos desde y hacia el TFS. La clave es que, cuando una base de datos o una parte de una base de datos se declara como en memoria, solo el RDM TFS y el tiempo de ejecución se comportan de manera diferente. Su código de aplicación puede seguir siendo exactamente el mismo. RDM tiene varias opciones para bases de datos en memoria.

Una base de datos persistente en la memoria se carga desde la imagen del disco cuando se abre y los cambios se guardan automáticamente cuando se cierra. Una base de datos volátil en la memoria está vacía cuando está abierta y todos los datos se descartan cuando está cerrada. El tercer tipo es una lectura al abrir, que carga automáticamente datos de una imagen de disco cuando se abre, pero los cambios solo se escriben bajo demanda. Entonces, para resumir, las ventajas de usar RDM como una base de datos en memoria, es que brinda seguridad transaccional y multiusuario cuando una solución de memoria compartida requiere mucho trabajo para hacer esto. También proporciona un mayor rendimiento que las soluciones duraderas.

Desventajas pérdida potencial de datos y límite en el tamaño de la base de datos. Cuando esto esté bien, ciertamente debería usar RDM en la solución de memoria.