Eu tenho um host sem disco 'A', que tem um diretório NFS montado no servidor 'B'. Um processo em A grava em dois arquivos F1 e F2 nesse diretório e um processo em B monitora esses arquivos em busca de alterações. Suponha que B aponte para mudanças mais rápidas do que A é esperado para fazê-las. O processo A procura a cabeça dos arquivos, grava dados e libera. O processo B procura a cabeça dos arquivos e faz leituras.
Há qualquer garantias sobre como a ordem das mudanças realizadas por A será detectada em B?
Especificamente, se A grava alternadamente em um arquivo e, em seguida, no outro, é razoável esperar que B notará alterações alternadas em F1 e F2? Ou poderia B detectar uma série de mudanças em F1 e depois em uma série em F2?
Eu sei que há muitas suposições embutidas na questão. Por exemplo, estou praticamente certo de que, mesmo operando em apenas um arquivo, se A executar 100 operações no arquivo, B poderá ver um número menor de alterações que fornecem o mesmo resultado, devido ao armazenamento em cache de algumas das ações em A antes eles são comunicados a B. E, é claro, haveria problemas com o acesso simultâneo a arquivos, mesmo se o NFS não estivesse envolvido e o processo de leitura e gravação estivesse sendo executado no mesmo sistema de arquivos real .
A razão pela qual estou até colocando a questão aqui é que parece que na maioria das vezes, a configuração descrita acima faz detectar as mudanças em B na mesma ordem em que são feitas em A , mas ocasionalmente alguns eventos acontecem em ordem transposta. Então, vale a pena tentar fazer isso funcionar? Existe alguma maneira de ajustar o NFS para que funcione, talvez configurações de cache ou algo assim? Ou o comportamento refinado como esse é muito esperado do NFS?