AmesCornish / buttersink

Buttersink is like rsync for btrfs snapshots
GNU General Public License v3.0
195 stars 18 forks source link

buttersink uses same as snapshot as basis #7

Closed simon196405 closed 9 years ago

simon196405 commented 9 years ago

I have a series of snapshots made with snapper. Basically the idea is to make a snapshot or root every hour. The first one is snapshot 1, the second one snapshot 2 etc. Image have 5 snapshots nr 1 till 5. Seems like buttersink copies one over (say nr 3) and then for the other ones sends over the diffs with nr. 3. To me it makes more sence to 1 over. Diff 2 with 1, Diff 3 with 2 etc. That way the diffs are smaller. To make it more general when different snapshots have the same parent handle them alphabetically or numerically in ascending order.

Hope this makes sence to you.

Regards,

Simon

AmesCornish commented 9 years ago

Simon,

Thanks for the feedback. I specifically added some intelligence to buttersink to find the best set of diffs to use, which is not always simple chronological order, though it considers chronological order as one of the factors. It also looks at the total and "exclusive" size of each snapshot, and will sometimes measure actual diff sizes. It tries to minimize the total size of the diffs, but also to optimize other factors, like a long "chain" of diffs is less reliable that a single diff. If you have a specific example where the optimization seems way off to you, then it would be helpful to get a debug log (using the --logfile option), and it might help me to improve the algorithm.

Thanks!