Distributed Replicated Block Device (DRBD) development
 help / color / mirror / Atom feed
From: Lars Ellenberg <lars.ellenberg@linbit.com>
To: drbd-dev@lists.linbit.com
Subject: Re: [Drbd-dev] Checksum based resync block size
Date: Mon, 24 Jun 2019 17:49:46 +0200	[thread overview]
Message-ID: <20190624154946.GU30528@soda.linbit> (raw)
In-Reply-To: <alpine.LRH.2.11.1906210638010.3326@mx.ewheeler.net>

On Sat, Jun 22, 2019 at 12:03:55AM +0000, Eric Wheeler wrote:
> Hello all,
> 
> Can someone help explain how checksum-based sync and verify are 
> implemented in the sender and receive side?  It looks like the hashes are 
> per-sector (looking at read_for_csum?) and I am interested in making the 
> csum chunk size configurable, or at least hack in some test code to see if 
> it would provide a performance benefit to csum multiple sectors.
> 
> I'm also trying to understand what iterates over the lldev and understand 
> where the csum takes place foreach chunk of data.
> 
> Any direction would be helpful.  Thank you.

As our in-sync/out-of-sync bitmap tracks 4k blocks,
we want to compare 4k checkesums.

Yes, that generates "a lot" of requests, and if these are not merged by
some IO scheduler on the lower layers, that may seriously suck.

make_ov_request() is what generates the online-verify requests.

What we potentially could do is issue the requests in larger chunks,
like (1 MiB) to the backends, then calculate and communicate the
checksum per each 4k, as well as the result.

-- 
: Lars Ellenberg
: LINBIT | Keeping the Digital World Running
: DRBD -- Heartbeat -- Corosync -- Pacemaker
: R&D, Integration, Ops, Consulting, Support

DRBD® and LINBIT® are registered trademarks of LINBIT

  reply	other threads:[~2019-06-24 15:49 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-22  0:03 [Drbd-dev] Checksum based resync block size Eric Wheeler
2019-06-24 15:49 ` Lars Ellenberg [this message]
2019-06-26 19:20   ` Eric Wheeler
2019-06-27 10:22     ` Robert Altnoeder
2019-06-27 17:59       ` Eric Wheeler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190624154946.GU30528@soda.linbit \
    --to=lars.ellenberg@linbit.com \
    --cc=drbd-dev@lists.linbit.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox