On 02/27/2012 03:46 PM, Anthony Liguori wrote: > I think a better way to think of this is as a batch submission. It > would be relatively easy to model in QMP too (just have a batch-command > that has a list of commands as it's argument). > > The difference between batch submission and a transaction is atomic > rollback. But I don't think atomic rollback is really needed here.
A transaction enforces atomicity at the block layer level. It's different from batch commands in two ways: * bdrv_drain_all/bdrv_flush needs to be called at the beginning of the commit. This may not be the case with batch commands. * with batch commands, atomicity happens by chance because VCPUs cannot send I/O while the monitor is holding the global mutex. Paolo