Allocate-on-flush (también llamado asignación retrasada ) es una función del sistema de archivos implementada en HFS + , [1] XFS , Reiser4 , ZFS , Btrfs y ext4 . [2] La característica también se parece mucho a una técnica anterior que el UFS de Berkeley llamó "reasignación de bloques".
Cuando se deben asignar bloques para contener escrituras pendientes, el espacio en disco para los datos adjuntos se resta del contador de espacio libre, pero no se asigna realmente en el mapa de bits de espacio libre . En cambio, los datos adjuntos se mantienen en la memoria hasta que deben vaciarse al almacenamiento debido a la presión de la memoria, cuando el kernel decide vaciar los búferes sucios o cuando la aplicación realiza la llamada al sistema de sincronización Unix , por ejemplo.
Esto tiene el efecto de agrupar asignaciones en lotes más grandes. Este procesamiento retrasado reduce el uso de la CPU y tiende a reducir la fragmentación del disco , especialmente para los archivos que crecen lentamente. También puede ayudar a mantener las asignaciones contiguas cuando hay varios archivos creciendo al mismo tiempo. Cuando se utiliza junto con la copia en escritura como en ZFS , puede convertir escrituras aleatorias lentas en escrituras secuenciales rápidas.
Referencias
- ^ "Acerca de la optimización del disco con Mac OS X" . Support.Apple.com . Manzana . 2010-02-10 . Consultado el 13 de diciembre de 2016 .
- ^ Edición semanal de LWN.net para el 17 de julio de 2008 2.6.27: lo que viene (parte 1)