On Wed, Mar 11, 2020 at 15:15:03 -0500, Eric Blake wrote:
On 3/11/20 7:55 AM, Peter Krempa wrote:
> Starting a commit job will require disabling bitmaps in the base image
> so that they are not dirtied by the commit job. We need to store a list
> of the bitmaps so that we can later re-enable them.
I think I get why you don't want them further dirtied, but does it really
matter?
Well it feels to be the right thing to do in terms of the semantics that
were established for checkpoints.
To refresh, creating a new checkpoint disables previous bitmaps to
"optimize" the number of bytes written in the bitmap.
On that terms I think we should make sure that the bitmaps are populated
correctly.
Given qemu's todays features and the fact that bitmaps don't thake that
much space on disk I'd probably nowadays go for a checkpoint always
creating a new bitmap and not disabling older ones. In addition we could
stop populating snapshots with bitmaps altogether as we can get the
bitmaps from an allocation map now.
With the above a lot of the operations could be greatly simplified. In
the end we can rework all of this as the feature is still really
experimental, but for the current situation with other parts of the
incremental backup code we should do this and since we decided to go the
hard way we should not cut corners here.