Estructura del sistema de archivos que escribe toda la información en un búfer circular
Un sistema de archivos estructurado en forma de registro es un sistema de archivos en el que los datos y metadatos se escriben secuencialmente en un búfer circular , llamado registro . El diseño fue propuesto por primera vez en 1988 por John K. Ousterhout y Fred Douglis e implementado por primera vez en 1992 por Ousterhout y Mendel Rosenblum para el sistema operativo distribuido Sprite , similar a Unix . [1]
Razón fundamental
Los sistemas de archivos convencionales tienden a diseñar los archivos con gran cuidado de la ubicación espacial y a realizar cambios en el lugar en sus estructuras de datos para funcionar bien en discos ópticos y magnéticos, que tienden a buscar con relativa lentitud.
El diseño de sistemas de archivos con estructura de registro se basa en la hipótesis de que esto ya no será efectivo porque el aumento constante del tamaño de la memoria en las computadoras modernas haría que la E/S se volviera pesada en escritura, ya que las lecturas casi siempre se satisfarían desde la memoria caché. Por lo tanto, un sistema de archivos con estructura de registro trata su almacenamiento como un registro circular y escribe secuencialmente en la cabecera del registro.
Esto tiene varios efectos secundarios importantes:
- El rendimiento de escritura en discos ópticos y magnéticos se mejora porque se pueden agrupar en grandes ejecuciones secuenciales y las búsquedas costosas se reducen al mínimo.
- Las escrituras crean múltiples versiones de los datos y metadatos de los archivos que avanzan cronológicamente. Algunas implementaciones permiten nombrar y acceder a estas versiones antiguas de los archivos, una función que a veces se denomina "viaje en el tiempo" o "captura de instantáneas" . Esto es muy similar a un sistema de archivos con control de versiones .
- La recuperación de fallas es más sencilla. En el siguiente montaje, el sistema de archivos no necesita recorrer todas sus estructuras de datos para corregir inconsistencias, sino que puede reconstruir su estado a partir del último punto consistente en el registro.
Sin embargo, los sistemas de archivos estructurados en forma de registro deben recuperar espacio libre de la cola del registro para evitar que el sistema de archivos se llene cuando la cabeza del registro se envuelva para encontrarse con él. La cola puede liberar espacio y avanzar omitiendo datos para los que existen versiones más nuevas más adelante en el registro. Si no hay versiones más nuevas, los datos se mueven y se agregan a la cabeza.
Para reducir la sobrecarga que genera esta recolección de basura , la mayoría de las implementaciones evitan los registros puramente circulares y dividen su almacenamiento en segmentos. La cabecera del registro simplemente avanza hacia segmentos no adyacentes que ya están libres. Si se necesita espacio, los segmentos menos llenos se recuperan primero. Esto disminuye la carga de E/S (y disminuye la amplificación de escritura ) del recolector de basura, pero se vuelve cada vez más ineficaz a medida que el sistema de archivos se llena y se acerca a su capacidad máxima.
Desventajas
La lógica de diseño de los sistemas de archivos con estructura de registros supone que la mayoría de las lecturas se optimizarán mediante cachés de memoria cada vez más grandes. Esta suposición no siempre se cumple:
- En medios magnéticos, donde las búsquedas son relativamente costosas, la estructura de registro puede, de hecho, hacer que las lecturas sean mucho más lentas, ya que fragmenta archivos que los sistemas de archivos convencionales normalmente mantienen contiguos con escrituras en el lugar.
- En la memoria flash, donde los tiempos de búsqueda suelen ser insignificantes, la estructura de registros puede no proporcionar una ganancia de rendimiento que valga la pena porque la fragmentación de escritura tiene un impacto mucho menor en el rendimiento de escritura. Otro problema es apilar un registro sobre otro, lo que no es una muy buena idea, ya que obliga a realizar borrados múltiples con acceso no alineado. [4] Sin embargo, muchos dispositivos basados en flash no pueden reescribir parte de un bloque, y primero deben realizar un ciclo de borrado (lento) de cada bloque antes de poder reescribir, por lo que al poner todas las escrituras en un bloque, esto puede ayudar al rendimiento en contraposición a las escrituras dispersas en varios bloques, cada uno de los cuales debe copiarse en un búfer, borrarse y volver a escribirse, lo que es una clara ventaja para la denominada memoria flash "sin procesar", donde se omite la capa de traducción flash. [ cita requerida ]
Véase también
Referencias
- ^ John K. Ousterhout, Mendel Rosenblum. (1991), El diseño y la implementación de un sistema de archivos estructurado en registros (PDF) , Universidad de California, Berkeley
- ^ Equipos de ingeniería de hardware de Magic Pocket. "Extensión de la innovación de Magic Pocket con la primera implementación de unidades SMR a escala de petabytes". dropbox.tech .
- ^ Reid, Colin; Bernstein, Phil (1 de enero de 2010). "Implementación de una interfaz de solo anexión para almacenamiento de semiconductores" (PDF) . IEEE Data Eng. Bull . 33 : 14-20.
- ^ Swaminathan Sundararaman, Jingpei Yang (2014), No apiles tu registro en mi registro (PDF) , SanDisk Corporation
Lectura adicional
- Sistemas de archivos estructurados en forma de registro (2014), Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C.; Arpaci-Dusseau Books