FERRAMENTAS LINUX: O Multi-Grained Timestamps foi submetido para o Kernel Linux 6.6

terça-feira, 29 de agosto de 2023

O Multi-Grained Timestamps foi submetido para o Kernel Linux 6.6

 

Em adição à chamada do sistema fchmodat2, uma outra pull request inicial, enviada por Christian Brauner da Microsoft antes mesmo do lançamento do kernel Linux 6.5, destaca-se por introduzir uma inovação significativa: os carimbos de data/hora multi-granulares, que serão incorporados ao Kernel Linux 6.6. 

Estes carimbos são projetados com o intuito de solucionar uma questão pertinente ao cache do NFS, bem como ao tratamento atual dos carimbos de data/hora de granularidade mais grosseira, usados para validar ou invalidar caches.

A contribuição de Christian Brauner abarca a solicitação de pull que implementa o suporte para carimbos de data/hora multi-granulares na camada VFS, ao mesmo tempo que os integra aos sistemas de arquivos Tmpfs, XFS, EXT4 e Btrfs. A essência do desenvolvimento em torno desses carimbos de data/hora multi-granulares reside em abordar os carimbos de data/hora de granulação mais grosseira que atualmente são empregados, ao atualizar o tempo de criação e modificação. Essa abordagem é necessária devido às múltiplas atividades de entrada/saída que podem ocorrer no mesmo instante. O NFS depende desses carimbos de data/hora para validar caches, tornando o comportamento atual dos carimbos de data/hora uma fonte de desafios. Entretanto, o código dos carimbos de data/hora multi-granulares acrescenta robustez a essa dinâmica.

Brauner explica na solicitação de pull:


"Esta implementação adiciona suporte multi-granular de carimbos de data/hora à VFS e converte tmpfs, xfs, ext4 e btrfs para fazer uso desses carimbos. Isso envolve os agradecimentos de todos os sistemas de arquivos pertinentes. A VFS utiliza carimbos de data/hora de granularidade mais grosseira ao atualizar o ctime e o mtime após uma alteração. Isso possui a vantagem de otimizar as atualizações de metadados em sistemas de arquivos, mesmo em situações de escrita intensa, limitando-se a cerca de 1 atualização por instante. Infelizmente, essa abordagem tem sido problemática ao exportar via NFSv3, que depende dos carimbos de data/hora para validar caches. Dado que mudanças substanciais podem ocorrer em um curto espaço de tempo, os carimbos de data/hora convencionais não são suficientes para guiar a decisão do cliente de invalidar o cache.

Mesmo no caso do NFSv4, muitos sistemas de arquivos exportados não possuem um suporte adequado para o atributo de alteração, e estão sujeitos aos mesmos problemas de granularidade dos carimbos de data/hora. Outros aplicativos também enfrentam desafios semelhantes relacionados aos carimbos de data/hora (como é o caso dos aplicativos de backup).

Embora o uso constante de carimbos de data/hora refinados possa melhorar a situação, essa abordagem acarretaria em um custo considerável. Isso se deve ao fato de que o sistema de arquivos subjacente precisaria registrar um grande número de atualizações de metadados.

Esta inovação introduz carimbos de data/hora refinados, que entram em ação quando consultados ativamente.

O processo envolve o uso do 31º bit do campo tv_nsec do ctime para indicar uma consulta ativa ao inode para mtime ou ctime. Quando esse indicador é definido, na próxima atualização do mtime ou ctime, o kernel buscará um carimbo de data/hora de granularidade mais fina, em oposição ao padrão de granularidade mais grosseira

Dado que o POSIX geralmente determina que uma mudança no mtime resulta também em uma mudança no ctime, o kernel armazena os valores do ctime normalizados. Isso significa que apenas os primeiros 30 bits do campo tv_nsec são utilizados

Os sistemas de arquivos têm a opção de adotar esse comportamento, definindo a flag FS_MGTIME no arquivo fstype. Caso essa flag não seja definida, os sistemas de arquivos continuarão a empregar os carimbos de data/hora de granularidade mais grosseira."

Esse código aguarda a fusão por Linus Torvalds, em preparação para a versão 6.6 do Kernel Linux.




Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário