From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34190) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VH9mE-0007km-Sw for qemu-devel@nongnu.org; Wed, 04 Sep 2013 05:53:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VH9m8-00064e-Tg for qemu-devel@nongnu.org; Wed, 04 Sep 2013 05:53:30 -0400 Received: from nodalink.pck.nerim.net ([62.212.105.220]:59867 helo=paradis.irqsave.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VH9m8-00064C-JM for qemu-devel@nongnu.org; Wed, 04 Sep 2013 05:53:24 -0400 Date: Wed, 4 Sep 2013 11:55:23 +0200 From: =?iso-8859-1?Q?Beno=EEt?= Canet Message-ID: <20130904095523.GC5054@irqsave.net> References: <1378215952-7151-1-git-send-email-kwolf@redhat.com> <20130904080352.GA8031@stefanha-thinkpad.redhat.com> <20130904093950.GB3562@dhcp-200-207.str.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20130904093950.GB3562@dhcp-200-207.str.redhat.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [RFC] qcow2 journalling draft List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: benoit.canet@irqsave.net, famz@redhat.com, jcody@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com, Stefan Hajnoczi > > I'm not sure if multiple journals will work in practice. Doesn't thi= s > > re-introduce the need to order update steps and flush between them? >=20 > This is a question for Beno=EEt, who made this requirement. I asked him > the same a while ago and apparently his explanation made some sense to > me, or I would have remembered that I don't want it. ;-) The reason behind the multiple journal requirement is that if a block get created and deleted in a cyclic way it can generate cyclic insertions/del= etions journal entries. The journal could easilly be filled if this pathological corner case happ= en. When it happen the dedup code repack the journal by writting only the non redundant information into a new journal and then use the new one. It would not be easy to do so if non dedup journal entries are present in= the journal hence the multiple journal requirement. The deduplication also need two journals because when the first one is fr= ozen it take some time to write the hash table to disk and anyway new entries mus= t be stored somewhere at the same time. The code cannot block. > It might have something to do with the fact that deduplication uses the > journal more as a kind of cache for hash values that can be dropped and > rebuilt after a crash. For dedupe the journal is more a "resume after exit" tool. Best regards Beno=EEt