Es presenta una implementació asíncrona de DISCARD per a Btrfs

Per al sistema de fitxers btrfs representat per implementació asíncrona de l'operació DISCARD (marcant els blocs alliberats que ja no cal emmagatzemar físicament), implementada pels enginyers de Facebook.

L'essència del problema: a la implementació original, DISCARD es realitza de manera sincrònica amb altres operacions, cosa que en alguns casos comporta problemes de rendiment, ja que les unitats han d'esperar que es completin les ordres corresponents, la qual cosa requereix temps addicional. Això pot ser un problema si la implementació de DISCARD de la unitat és lenta.

Amb una implementació asíncrona, no cal esperar que la unitat completi DISCARD durant el funcionament normal de l'FS, la qual cosa elimina el problema transferint aquesta operació a un segon pla. La implementació presentada també realitza algunes optimitzacions. Per exemple, espera un temps per preocupar-se que el bloc aviat es pugui utilitzar de tal manera que no tindria sentit executar el procediment DESCART, i també intenta fusionar regions abans d'executar realment el DESCART per tal de reduir el nombre total d'operacions.

Font: opennet.ru

Afegeix comentari