En informática , la memoria persistente es cualquier método o aparato para almacenar de manera eficiente estructuras de datos de modo que se pueda seguir accediendo a ellas mediante instrucciones de memoria o API de memoria incluso después del final del proceso que las creó o modificó por última vez. [1]
A menudo confundida con la memoria de acceso aleatorio no volátil (NVRAM), la memoria persistente está más estrechamente vinculada al concepto de persistencia en su énfasis en el estado del programa que existe fuera de la zona de falla del proceso que la creó. (Un proceso es un programa en ejecución. La zona de falla de un proceso es ese subconjunto del estado del programa que podría corromperse si el proceso continúa ejecutándose después de incurrir en una falla, por ejemplo, debido a un componente no confiable utilizado en la computadora que ejecuta el programa .)
El acceso eficiente, similar a la memoria, es la característica definitoria de la memoria persistente. [2] Puede proporcionarse mediante instrucciones de memoria de microprocesador, como cargar y almacenar. También se puede proporcionar mediante API que implementan acciones de acceso directo a memoria remoto (RDMA), como lectura RDMA y escritura RDMA. También califican otros métodos de baja latencia que permiten el acceso por grano de bytes [ aclaración necesaria ] a los datos.
Las capacidades de memoria persistente se extienden más allá de la no volatilidad de los bits almacenados. Por ejemplo, la pérdida de metadatos clave, como las entradas de la tabla de páginas u otras construcciones que traducen direcciones virtuales en direcciones físicas, puede hacer que los bits duraderos no sean persistentes. A este respecto, la memoria persistente se asemeja a formas más abstractas de almacenamiento informático, como los sistemas de archivos . De hecho, casi todas las tecnologías de memoria persistente existentes implementan al menos un sistema de archivos básico que se puede usar para asociar nombres o identificadores con extensiones almacenadas y, como mínimo, proporcionan métodos de sistema de archivos que se pueden usar para nombrar y asignar tales extensiones.
Ver también
- NOVA (sistema de archivos)
- Datos persistentes
- Estructuras de datos persistentes
- Phantom OS : sistema operativo persistente
Referencias
- ^ Satish M. Thatte. 1986. Memoria persistente: una arquitectura de almacenamiento para sistemas de bases de datos orientados a objetos. En Actas del taller internacional de 1986 sobre sistemas de bases de datos orientados a objetos (OODS '86). IEEE Computer Society Press, Los Alamitos, CA, EE. UU., 148-159.
- ^ P. Mehra y S. Fineberg, "Persistencia rápida y flexible: la poción mágica para la tolerancia a fallas, escalabilidad y rendimiento en almacenes de datos en línea", 18º Simposio internacional de procesamiento paralelo y distribuido, 2004. Actas., Santa Fe, NM, EE.UU., 2004, págs. 206-. doi: 10.1109 / IPDPS.2004.1303232
enlaces externos
- Programación de memoria persistente , una colección de recursos relacionados con la programación de memoria persistente
- Contenedores y datos persistentes , LWN.net , 28 de mayo de 2015, por Josh Berkus
- Actualización de DRAM asíncrona (ADR) , SNIA , enero de 2014 (también se aplica a DRAM)
- Twizzler: An Operating System for Next-Generation Memory Hierarchies , Universidad de California, Informe técnico de Santa Cruz UCSC-SSRC-17-01, 5 de diciembre de 2017, por Daniel Bittman, Matt Bryson, Yuanjiang Ni, Arjun Govindjee, Isaak Cherdak, Pankaj Mehra, Darrell DE Long y Ethan L. Miller