From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44873) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VGlRl-00019r-TJ for qemu-devel@nongnu.org; Tue, 03 Sep 2013 03:54:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VGlRg-0006i4-8M for qemu-devel@nongnu.org; Tue, 03 Sep 2013 03:54:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:2583) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VGlRg-0006hx-07 for qemu-devel@nongnu.org; Tue, 03 Sep 2013 03:54:40 -0400 Date: Tue, 3 Sep 2013 09:54:31 +0200 From: Stefan Hajnoczi Message-ID: <20130903075431.GA1610@stefanha-thinkpad.redhat.com> References: <20130902125722.GG5073@irqsave.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20130902125722.GG5073@irqsave.net> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v3 0/8] block: drive-backup live backup command List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?iso-8859-1?Q?Beno=EEt?= Canet Cc: pbonzini@redhat.com, dietmar@proxmox.com, qemu-devel@nongnu.org On Mon, Sep 02, 2013 at 02:57:23PM +0200, Beno=EEt Canet wrote: >=20 > I don't see the point of using hashes. > Using hashes means that at least one extra read will be done on the tar= get to > compute the candidate target hash. > It's bad for a cloud provider where IOs count is a huge cost. >=20 > Another structure to replace a bitmap (smaller on the canonical case) w= ould be > a block table as described in the Hystor paper: > www.cse.ohio-state.edu/~fchen/paper/papers/ics11.pdf This is similar to syncing image formats that use a revision number for each cluster instead of a hash. The problem with counters is overflow. In the case of Hystor it is not necessary to preserve exact counts. A dirty bitmap must mark a block dirty if it has been modified, otherwise there is a risk of data loss. A bit more than just counters are necessary to implement a persistent dirty bitmap, but maybe it's possible with some additional state. Stefan