Saltar al contenido

En base de datos de memoria en .net

Te recomendamos que revises esta solución en un ambiente controlado antes de enviarlo a producción, saludos.

Solución:

In-Memory Database (IMDB) es una base de datos relacional residente en la memoria que elimina el acceso al disco almacenando y manipulando datos en la memoria principal. Una IMDB generalmente presenta una arquitectura estricta basada en memoria y manipulación directa de datos.

Un poco de cosas relacionadas:

  • ¿Buena base de datos en memoria para .net/PowerShell?
  • Copia de seguridad de la base de datos en memoria de SQLite en .NET
  • Alternativa a TimesTen en la base de datos de memoria en .NET

Hay dos mitos que deben corregirse al describir las bases de datos de memoria.

1) “Una base de datos de memoria es menos persistente que una base de datos de disco”. Mientras esto es true para bases de datos de memoria más simples, las bases de datos de memoria de nivel empresarial protegen los datos en el disco cuando realizan transacciones. Los discos solo son lentos cuando los brazos del disco se mueven. Si lo piensa, puede escribir un gigabyte en segundos en un disco rápido. Y si su base de datos cambia tanto, puede asegurar terabytes por día en tiempo real. Esto hace que las bases de datos RAM, como HANA y Starcounter, sean tan seguras como las bases de datos en disco y, al mismo tiempo, superrápidas. Puede apagar la alimentación en cualquier momento y los puntos de control y las recuperaciones funcionan igual que para las bases de datos basadas en disco.

2) “Las bases de datos de memoria son mucho más rápidas”. La razón por la que las bases de datos de memoria son más rápidas es simplemente porque operan en la memoria. Si coloca una base de datos tradicional en una unidad RAM, no sucede gran cosa. De hecho, como los cachés en estos días generalmente exceden el tamaño de su base de datos, ya residen en la memoria. La razón por la que la base de datos de la memoria es mucho más eficiente es que la imagen de la base de datos se trata como memoria principal y no como memoria secundaria. Esto significa que una base de datos RAM moderna no copia páginas de la imagen del disco a la RAM cuando lee datos. En los servidores modernos, la pared de memoria se convierte rápidamente en un cuello de botella. Esto se evita en las bases de datos RAM. La segunda razón es que cuando desarrolla algo para un medio que es miles de veces más rápido que el disco, tiende a no agregar sobrecarga en microsegundos y milisegundos, ya que las cosas que consumen nanosegundos son inmediatamente visibles. A escala de discos, no hay motivo para optimizar el código a este nivel. Cuando de repente los precios de la memoria RAM caen (98% desde 2000), no puede simplemente reescribir todo su motor de base de datos.

Una base de datos en memoria funciona como una base de datos ordinaria, pero el contenido se almacena en la memoria en lugar de en el disco. Esto tiene el efecto de que todos los datos se pierden cuando se cierra la aplicación. Deben reconstruirse y llenarse con datos en cada inicio.

Un ejemplo de una base de datos que puede ejecutarse en modo en memoria es SQLite. Tenga en cuenta que SQLite es una base de datos en proceso, la aloja dentro de su aplicación.

Al final de todo puedes encontrar las ilustraciones de otros usuarios, tú de igual manera tienes la habilidad dejar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *