From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56233) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S21yW-0007Ir-Ud for qemu-devel@nongnu.org; Mon, 27 Feb 2012 09:54:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S21yR-0002hv-KH for qemu-devel@nongnu.org; Mon, 27 Feb 2012 09:54:52 -0500 Received: from mx1.redhat.com ([209.132.183.28]:11354) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S21yR-0002hq-C5 for qemu-devel@nongnu.org; Mon, 27 Feb 2012 09:54:47 -0500 Message-ID: <4F4B9931.30708@redhat.com> Date: Mon, 27 Feb 2012 15:54:41 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <20120224170143.78f55d3e@doriath.home> <8eaeb022-ea20-4823-886a-e629bce1c776@zmail16.collab.prod.int.phx2.redhat.com> <20120227091215.7849e558@doriath.home> <4F4B7BCD.6000808@redhat.com> <20120227100645.3f36d52d@doriath.home> <4F4B95A5.3000804@redhat.com> <4F4B9761.3010601@codemonkey.ws> In-Reply-To: <4F4B9761.3010601@codemonkey.ws> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] drive transactions (was Re: [PATCH 2/2 v2] Add the blockdev-reopen and blockdev-migrate commands) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: kwolf@redhat.com, Jeff Cody , mtosatti@redhat.com, armbru@redhat.com, qemu-devel@nongnu.org, Federico Simoncelli , Luiz Capitulino 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