Para los que tenemos ya una cierta edad, aunque también los hay menos jóvenes que quede claro y crecimos con Spectrum, los procesadores 8086 y sus posteriores evoluciones, los mismos que veíamos que un SIMM de memoria de unos pocos kilobytes se cotizaba como un jamón (de Teruel).
Ahora ya nadie se imagina comprar un PC sin varios gigabytes y si pensamos en algo todavía más grande, pensemos en esos servidores que soportan ya terabytes de memoria RAM.
Por otro lado tenemos los discos duros. Los tenemos de distintos sabores y velocidades. Magnéticos o SSD, SAS o SATA, de decenas de terabytes. Discos que generalmente trasladan a nuestra querida memoria RAM los datos necesarios para que las aplicaciones se ejecuten con presteza y por muy grandes que sean esos discos duros, siempre parece que no damos abasto con el espacio que nos proporcionan.
Y ahora pensemos en lo que sucede cuando por algún motivo, tenemos que apagar ese servidor que lleva varios meses encendido y alberga en esa efímera memoria RAM varios centenares de gigabytes de datos. Y como decía antes, incluso terabytes.
Todos esos datos (almacenados en la RAM) se perderán como lágrimas en la lluvia. ¿O no? La nota friki del articulo está aquí. Para los menores de 30 que la conozcan sin mirar en la Wikipedia, pueden pasar ya a renovar el carnet de cinéfilo.
Al lío que es lo que nos reclama el artículo. La Storage Class Memory o memoria RAM persistente, ha venido para quedarse.
Volvamos al ejemplo en el que tenemos nuestro servidor con unas bases de datos que pesan varios centenares de gigas y estas han de cargarse en memoria para que realmente tengan un acceso eficiente. Eso supone un tiempo hasta que los datos de la misma son reclamados al disco duro y llevados a la memoria RAM para ser procesados. Y todo eso puede requerir de un tiempo importante.
En entornos justos de recursos eso se traduce en lentitud de los sistemas y agonía para los usuarios que ven que las cosas tardan en funcionan como lo hacía justo antes del reinicio del susodicho servidor.
Bueno, ¿y si los datos de la memoria RAM no se volatilizarán? Esa base de datos permanecería impertérrita a un apagado y el acceso a los datos en lugar de minutos solo sería de unos pocos segundos, básicamente lo que tardará en iniciarse . En entorno críticos puede suponer varios miles de euros mientras esa información es optimizada para la carga y posterior tratamiento.
Por poner un orden en lo referente a velocidad de acceso, primero CACHE, RAM tradicional, le sigue la SCM y finalmente los discos duros de estado sólido en su multitud de posibilidades. Los discos magnéticos pobrecitos se alejan de manera pasmosa de los primeros puestos, independientemente de sus buses de conexión o de las revoluciones por minuto con las que pueden llegar a girar.
Vale, ahora probablemente el lector más perspicaz se hará la siguiente pregunta: ¿Qué sucede si hay un error en la información que tiene cargada en los módulos SCM? Antes con reiniciar el servidor, asunto solucionado.
Ahora la realidad es que los desarrolladores deberán de aprender a trabajar con este tipo de memoria. El saber cuándo tienen que vaciar los datos almacenados en esas memorias será primordial, el cómo chequear que la información allí contenida es correcta y no tiene ningún error deberá de imponerse en los nuevos desarrollos.
Los sistemas operativos deberán de adaptarse. Los hypervisores más empleados como HyperV y VMWare ya lo han hecho y SAP-HANA y Microsoft SQL ya han publicado manuales de cómo gestionar este tipo de memorias.
La memoria persistente puede trabajar en dos modos; APP Mode o Memory Mode
Usando el modo APP Mode, habilitamos que las aplicaciones tengan acceso directo a la memoria, saltándonos el sistema operativo y el kernel, esto se traduce en reducción de latencia y ofrece mayor capacidad para disponer de mayor espacio en la memoria como por ejemplo, para bases de datos.
También nos permite una recuperación rápida de las aplicaciones y reduce igualmente la latencia al permitir el acceso a los datos almacenados en el bus de memoria en lugar de pasar por el bus I/O.
El Memory Mode nos permite usar la memoria SCM como RAM tradicional, permitiéndonos elevar la cantidad de RAM disponible en nuestro servidor, ya que se disponen de módulos de mayor capacidad.
A tener muy en cuenta. Los módulos SCM solo están disponibles a partir de la gama de procesadores GEN2 de Intel Xeon Scalable (Cascade Lake), no se puede prescindir completamente de la RAM tradicional y hay que cumplir una serie de ratios en cuanto a la populación de nuestros bancos de memoria.
Como veis esto no es solo una pieza de hardware más que permite que las aplicaciones se ejecuten de manera más rápida. Tanto los arquitectos de TI como desarrolladores deben de adaptarse a estas nuevas características, porque han venido para quedarse y estamos en la cuenta atrás para empezar a implementarla. ¿Hablamos?
Artículo redactado por Jacobo Gil
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.