Confira !!
O SUSE continua apoiando o sistema de arquivos Btrfs e, como parte disso, investindo em novas / aprimoradas funcionalidades em torno deste sistema de arquivos Linux, uma vez faturado como concorrente do ZFS. Esta semana, um dos desenvolvedores do SUSE enviou um conjunto de correções implementando um novo bloqueio "DRW" e conectando-o ao driver do sistema de arquivos.
Nikolay Borisov, da SUSE, enviou os patches na quinta-feira para refatorar seus mecanismos de bloqueio de snapshot / nocow writers. O código de bloqueio existente é alterado para usar um novo bloqueio "Double Reader Writer" DRW. Borisov explicou, "A (D) cabeçada (R) eader (W) riter lock é uma primitiva de bloqueio que permite ter vários leitores ou vários escritores, mas não vários leitores e escritores segurando-o simultaneamente. O código é fatorado fora do existente aberto O esquema de bloqueio codificado por código usado para excluir instantâneos pendentes de escritores nocow e vice-versa.A implementação atual realmente favorece os Readers (que são criadores de snapshots) para os escritores (nocow writers do sistema de arquivos). "
E então explicado no patch de acompanhamento:
Este patch remove todo o código aleatório que implementa a exclusão de gravadores de nocow da criação de instantâneos pendentes e alterna para o uso do bloqueio de drw para garantir que essa invariante ainda seja válida. "Leitores" são criadores de instantâneos de create_snapshot e "gravadores" são escritores nocow do caminho de gravação em buffer ou btrfs_setsize. Esse esquema de bloqueio permite que múltiplos instantâneos ocorram enquanto qualquer gravador nocow é bloqueado, já que as gravações no cache de páginas no caminho nocow farão os instantâneos inconsistentes.
Portanto, por motivos de desempenho, gostaríamos de ter a capacidade de executar vários instantâneos simultâneos e também favorece os leitores nesse caso. E, caso não haja instantâneos pendentes (que serão a maioria dos casos), contamos com o contador de autores do percpu para evitar contenção da linha de cache.
O principal ganho do uso do drw é agora muito mais fácil de raciocinar sobre as garantias do esquema de travamento e se há alguma quebra silenciosa à espreita.
Se tudo der certo, poderemos ver este código de bloqueio aprimorado como parte do ciclo do kernel Linux 5.3.
Fonte
Até a próxima !!
Nenhum comentário:
Postar um comentário