O rsync é uma boa opção para manter sincronizado um único arquivo pequeno?

O rsync é uma boa opção para manter sincronizado um único arquivo pequeno?

Preciso manter um único arquivo relativamente pequeno atualizado em uma conexão de modem dial-up lenta e instável.

O arquivo é um XML que pode começar com 15K e, duas horas depois, terminar com 500K.

É replicação unidirecional. Minha solução atual continua baixando o arquivo inteiro uma vez a cada minuto. Até agora funciona bem com conexões de banda larga, mas agora tenho que usá-lo em um local onde apenas a conexão discada está disponível. A ilusão de “dados em tempo real” se perde porque o download é lento.

Achei que o rsync poderia me salvar do desenvolvimento de um protocolo proprietário (e deficiente) "somente delta". Gostaria de saber se o rsync proporcionaria benefícios reais neste caso específico.

Portanto, a questão é: o protocolo rsync é adequado para um único arquivo de 15K a 500K?

Responder1

Não neste caso. É melhor você usar algo comodifxmlenviar apenas a diferença entre os arquivos como uma atualização e aplicar o patch na máquina de destino.

Responder2

Bem, fiz isso com o rsync e devo dizer que funcionou bem.

Ele transfere tão poucos dados que consegui reduzir a frequência de atualização para 20 segundos em uma conexão dial-up estreita (um terço da frequência anterior que usamos com banda larga!).

Atualizar um XML de 800kb agora leva 5kb de download + 800 bytes de upload!

Verificar versões quando não há alterações para atualizar leva menos 500 bytes de download + 100 bytes de upload! (Eu transfiro mais bytes digitando em uma sessão normal de chat!)

Muito melhor do que outras soluções diferentes e não precisei programar nada em torno disso. (anteriormente pensamos em adicionar um mecanismo push para iniciar o rsync, mas ainda não precisamos dele. 20 segundos são aceitáveis ​​​​e a pesquisa é muito leve.)

Muito bem, rsync!

PS: Não experimentei o Git e provavelmente também teria sido uma boa solução.

informação relacionada