O algoritmo de transferência delta usado no rsync transfere parte de um arquivo de origem, ou seja, subarquivo?

0

Diz-se que o rsync usa o algoritmo de transferência delta para transferir arquivos.

Para um arquivo de destino preexistente com o mesmo nome de arquivo de um     arquivo de origem,

  1. O algoritmo de transferência delta é usado

    • somente após o rsync ter decidido transferir o arquivo de origem para o destino ou
    • durante a determinação de se o rsync irá ou não transferir o arquivo de origem para o destino?
  2. Quando o rsync decidiu transferir o arquivo de origem para o arquivo de destino,

    O algoritmo de transferência delta transfere a diferença entre os arquivos de origem e de destino?

    O algoritmo de transferência delta funciona no nível "sub-file", calculando primeiro o arquivo de patch entre os dois arquivos e, em seguida, transferindo o patch arquivo para o destino e, em seguida, aplicar o arquivo de correção arquivo de destino preexistente para obter uma cópia idêntica da fonte Arquivo?

    Se sim, o rsync precisa transferir o arquivo de origem para o destino para calcular o arquivo de correção entre o fonte e arquivos de destino? Se sim, isso não contradiz a finalidade do algoritmo de transferência delta para evitar a transferência de todo o arquivo de origem?

Obrigado.

    
por Tim 28.01.2017 / 04:31

1 resposta

4

only after rsync have decided to transfer the source file to the destination

Sim.

during determining whether or not rsync will transfer the source file to the destination

Não. Quando rsync inicia o algoritmo delta, ele está totalmente comprometido com a atualização do arquivo.

Does the delta-transfer algorithm transfer the difference between the source and destination files?

Por padrão, sim. Você pode desativá-lo com a opção --whole-file . Observe que o que é enviado pelo algoritmo de transferência delta é não literalmente diff dos dois arquivos.

Does the delta-transfer algorithm work at the "sub-file" level, by first calculating the patch file between the two files, and then transferring the patch file to the destination, and then applying the patch file to the preexisting destination file to get an identical copy of the source file?

Não, porque rsync não assume que o remetente tenha uma cópia da versão do arquivo do destino.

rsync usa somas de verificação rotativas para determinar partes correspondentes do arquivo sem transferir o arquivo inteiro em qualquer direção. Claro, se não houver correspondências, o arquivo inteiro precisará ser enviado.

    
por 28.01.2017 / 05:36

Tags