Uma implementação assíncrona de DISCARD é apresentada para Btrfs

Para sistema de arquivos btrfs é apresentado implementação assíncrona da operação DISCARD (marcação de blocos liberados que não precisam mais ser armazenados fisicamente), implementada pelos engenheiros do Facebook.

A essência do problema: na implementação original, DISCARD é executado de forma síncrona com outras operações, o que em alguns casos leva a problemas de desempenho, pois os drives precisam aguardar a conclusão dos comandos correspondentes, o que requer mais tempo. Isto pode ser um problema se a implementação DISCARD da unidade for lenta.

Com uma implementação assíncrona, não há necessidade de esperar que o drive conclua o DISCARD durante a operação normal do FS, o que elimina o problema ao transferir esta operação para segundo plano. A implementação apresentada também realiza algumas otimizações. Por exemplo, ele espera algum tempo com a preocupação de que o bloco possa em breve ser usado de tal forma que não faça sentido executar o procedimento DISCARD, e também tenta mesclar regiões antes de realmente executar o DISCARD, a fim de reduzir o número total de operações.

Fonte: opennet.ru

Adicionar um comentário