Un sistema de archivos estructurado por registros 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]
Los sistemas de archivos convencionales tienden a distribuir los archivos con gran cuidado por la ubicación espacial y realizan 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 estructurados por registros se basa en la hipótesis de que esto ya no será efectivo porque los tamaños de memoria cada vez mayores en las computadoras modernas llevarían a que las E / S se volvieran pesadas para la escritura porque las lecturas casi siempre se realizarían desde la memoria caché. Un sistema de archivos con estructura de registro trata su almacenamiento como un registro circular y escribe secuencialmente en el encabezado del registro.
Esto tiene varios efectos secundarios importantes:
Sin embargo, los sistemas de archivos estructurados por registros deben recuperar espacio libre del final del registro para evitar que el sistema de archivos se llene cuando el encabezado del registro se enrolle para encontrarlo. La cola puede liberar espacio y avanzar saltando 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 al encabezado.
Para reducir la sobrecarga incurrida por esta recolección de basura , la mayoría de las implementaciones evitan registros puramente circulares y dividen su almacenamiento en segmentos. La cabeza del tronco simplemente avanza hacia los segmentos no adyacentes que ya están libres. Si se necesita espacio, primero se recuperan los segmentos menos completos. 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.
El fundamento del diseño de los sistemas de archivos estructurados por registros supone que la mayoría de las lecturas se optimizarán mediante la ampliación de las memorias caché. Esta suposición no siempre se cumple: