Articulo de referencia

Sistema de archivos estructurado por registros

Un sistema de archivos estructurado en registros es un sistema de archivos en el que los datos y los metadatos se escriben secuencialmente en un búfer circular , llamado registr...

Un sistema de archivos estructurado en registros es un sistema de archivos en el que los datos y los metadatos se escriben secuencialmente en un búfer circular , llamado registro . El diseño fue propuesto por primera vez por John K. Ousterhout y Fred Douglis en 1988 y se implementó 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 organizan los archivos con gran cuidado en cuanto a la localización espacial y realizan cambios in situ en sus estructuras de datos para funcionar bien en discos ópticos y magnéticos, que tienden a realizar búsquedas con relativa lentitud.

El diseño de los sistemas de archivos estructurados en registros se basa en la hipótesis de que este enfoque ya no será efectivo, dado que el aumento constante de la capacidad de memoria en los ordenadores modernos provocaría que las operaciones de entrada/salida se centraran principalmente en la escritura, puesto que las lecturas se satisfarían casi siempre desde la caché de memoria. Por lo tanto, un sistema de archivos estructurado en registros trata su almacenamiento como un registro circular y escribe secuencialmente en el inicio del mismo.

Esto tiene varios efectos secundarios importantes:

  • Se mejora el rendimiento de escritura en discos ópticos y magnéticos porque se pueden agrupar en grandes secuencias y se reducen al mínimo las costosas búsquedas.
  • Las operaciones de escritura crean múltiples versiones, que avanzan cronológicamente, tanto de los datos del archivo como de los metadatos. Algunas implementaciones permiten nombrar y acceder a estas versiones antiguas del archivo, una función que a veces se denomina "viaje en el tiempo" o " instantánea" . Esto es muy similar a un sistema de archivos con control de versiones .
  • La recuperación tras un fallo es más sencilla. Al montarse de nuevo, el sistema de archivos no necesita recorrer todas sus estructuras de datos para corregir las inconsistencias, sino que puede reconstruir su estado a partir del último punto consistente en el registro.

Los sistemas de archivos estructurados en registros deben recuperar espacio libre del final del registro para evitar que este se llene cuando el inicio del registro se desborde. El final del registro puede liberar espacio y avanzar omitiendo datos cuyas versiones más recientes se encuentren más adelante. Si no existen versiones más recientes, los datos se mueven y se añaden al inicio.

Para reducir la sobrecarga que supone la recolección de basura , la mayoría de las implementaciones evitan los registros circulares puros y dividen su almacenamiento en segmentos. El inicio del registro simplemente avanza hacia segmentos no adyacentes que ya están libres. Si se necesita espacio, se recuperan primero los segmentos menos llenos. Esto disminuye la carga de E/S (y la amplificación de escritura ) del recolector de basura, pero se vuelve cada vez menos efectivo a medida que el sistema de archivos se llena y se acerca a su capacidad máxima.

Desventajas

El diseño de los sistemas de archivos estructurados en registros parte de la premisa de que la mayoría de las lecturas se optimizarán mediante cachés de memoria cada vez mayores. Esta premisa no siempre se cumple:

  • En los soportes magnéticos, donde las búsquedas son relativamente costosas, la estructura de registro puede, de hecho, ralentizar mucho las lecturas, ya que fragmenta los archivos que los sistemas de archivos convencionales normalmente mantienen contiguos con las escrituras in situ.
  • En la memoria flash, donde los tiempos de búsqueda suelen ser insignificantes, la estructura de registro puede no proporcionar una mejora de rendimiento significativa 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 cual no es una buena idea, ya que fuerza múltiples borrados con acceso no alineado. [ 4 ] Sin embargo, muchos dispositivos basados ​​en flash no pueden reescribir parte de un bloque y deben realizar primero un ciclo de borrado (lento) de cada bloque antes de poder reescribirlo. Al colocar todas las escrituras en un solo bloque, esto puede mejorar el rendimiento en comparación con las escrituras dispersas en varios bloques, y cada una debe copiarse en un búfer, borrarse y volver a escribirse, lo cual es una clara ventaja para la llamada memoria flash "en bruto" donde se omite la capa de traducción de flash.

Véase también

Referencias

  1. John K. Ousterhout, Mendel Rosenblum. (1991), Diseño e implementación de un sistema de archivos estructurado en registros (PDF) , Universidad de California, Berkeley
  2. Equipos de ingeniería de hardware de Magic Pocket. "Ampliando la innovación de Magic Pocket con el primer despliegue de una unidad SMR a escala de petabytes" . dropbox.tech .
  3. Reid, Colin; Bernstein, Phil (1 de enero de 2010). "Implementación de una interfaz de solo adición para almacenamiento de semiconductores" (PDF) . IEEE Data Eng. Bull . 33 : 14-20.
  4. Swaminathan Sundararaman, Jingpei Yang (2014), No apiles tu registro sobre mi registro (PDF) , SanDisk Corporation

Lecturas adicionales

  • Sistemas de archivos estructurados en registros (2014), Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C.; Libros de Arpaci-Dusseau