Incremental block differences backup in Internet mode

Okay so I have forced the backup server to only accept internet mode by adding the --internet_mode_only true argument.

I can also connect successfully from the client using the internet mode. Full and incremental backups run fine as expected.

However, the incremental file backup with block differences seems to be not working. I first created a .txt file of about 1mb and managed to performe a full backup successfully. I then edited the same to increase the size to 1.5mb and after which, I ran an incremental backup.

Although the incremental backup completes successfully, it seems that the entire 1.5mb is transferred instead of just the block differences of 0.5mb.

Is this normal?

Thanks!

It depends. If you added the 0.5 MB at the beginning it is as intended. If you added it at the end, it shouldn’t have transferred them.
Reason being that it does retransfer every block with changed location and does only not re-transfer it if it is identical at the same offset in the file (contrary to rsync).

This way it does not choke on large files, while doing still reasonably well with e.g. database files.

1 Like

Does it mean that for only 0.5mb of block differences to work, the file has to grow from the end of its contents and not somewhere in the middle or top?

So how does this algorithm compare to rsync? What are its main advantages? Does it mean that it is more efficient in backing up large files than rsync because it does not have to process/checksum the entire large file (say 500gb) and works straight from offsets by reading the hashes?

Hi @uroni,
I have a quick question. If the file contents have changed towards the end as you are suggesting, then how does urbackup figures out the differential data(i.e. changed blocks of data). Does it depend on Snapshot mechanism to achieve this(LVM, Dattobd or brtfs). If not, how does urbackup gets the changed blocks information?
I am new to urbackup, so please be kind to respond even if my question seems silly. I am learning Linux kernel internals and want to understand the logic of scanning the changed blocks.
Also if there is difference between incremental backups and snapshots, then can you guide what is the difference between them.

Thank you again.
Regards,
Deepak Babel