Preséntase unha implementación asíncrona de DISCARD para Btrfs

Para o sistema de ficheiros btrfs presentado implementación asíncrona da operación DISCARD (marcando bloques liberados que xa non precisan ser almacenados fisicamente), implementada por enxeñeiros de Facebook.

A esencia do problema: na implementación orixinal, DISCARD execútase de forma sincronizada con outras operacións, o que nalgúns casos leva a problemas de rendemento, xa que as unidades teñen que esperar a que se completen os comandos correspondentes, o que require tempo adicional. Isto pode ser un problema se a implementación DISCARD da unidade é lenta.

Cunha implementación asíncrona, non hai que esperar a que a unidade complete DISCARD durante o funcionamento normal de FS, o que elimina o problema ao transferir esta operación a un segundo plano. A implementación presentada tamén realiza algunhas optimizacións. Por exemplo, agarda un tempo por preocuparse de que o bloque poida usarse pronto de forma que non teña sentido executar o procedemento DISCARD, e tamén tenta fusionar rexións antes de executar realmente o DISCARD para reducir o número total de operacións.

Fonte: opennet.ru

Engadir un comentario