I apologize if I make any undue assumptions regarding your knowledge of how Duplicati works.
How Duplicati works (greatly oversimplified):
Duplicati divides the files you are backing up into blocks, and when it has enough of those blocks it packages them into volumes that are sent to your storage location. Duplicati keeps a database that records which blocks came from which files, and which volumes they were stored in.
Duplicati does this so that if only part of a file changes it doesnāt need to back up the entire file again. It adds only the blocks that changed to the backup.
When you restore a file from a backup, Duplicati will consult the database and make a list of blocks that it needs in order to reassemble the file, and a list of volumes it will have to retrieve in order to obtain those blocks.
If you are lucky, all or nearly all of the blocks you need will be contained in a small number of volumes. However, depending on your circumstances the blocks you need may be spread across many different volumes, and Duplicati must download the entire volume even if it only needs a single block that is stored within it.
This is all to say, depending heavily on your exact circumstances, this can be normal operation. Especially if you have very large files that change a little bit with each backup, such as virtual machine images.
There are a few things you can do to make this process more efficient, but as with most things there are tradeoffs involved.
Using smaller volumes can reduce the amount of āextraā data Duplicati needs to download during a restore, but will increase the total number of volumes that need to be stored. Some storage providers limit the number of files you can store, or suffer from performance problems if the number gets too high so this avenue might be limited.
Splitting large backup jobs into smaller ones can also improve efficiency but at the cost of having more backup jobs to manage.
Also, generally speaking, larger block sizes tend to perform better, at the cost of being less space-efficient. Block size canāt be adjusted for existing backups, which is another significant tradeoff.