From: Eric Blake <eblake@redhat.com>
To: Alex Bligh <alex@alex.org.uk>, Wouter Verhelst <w@uter.be>,
Josef Bacik <jbacik@fb.com>
Cc: linux-block@vger.kernel.org, Markus Pargmann <mpa@pengutronix.de>,
kernel-team@fb.com,
"nbd-general@lists.sourceforge.net"
<nbd-general@lists.sourceforge.net>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Nbd] [RESEND][PATCH 0/5] nbd improvements
Date: Thu, 15 Sep 2016 08:34:25 -0500 [thread overview]
Message-ID: <8dd28f8b-0a3c-4112-ca6d-a9ad080d5920@redhat.com> (raw)
In-Reply-To: <27B346AF-F144-4770-BE38-446A66E71326@alex.org.uk>
[-- Attachment #1.1: Type: text/plain, Size: 1985 bytes --]
On 09/15/2016 06:09 AM, Alex Bligh wrote:
>
> I also wonder whether any servers that can do caching per
> connection will always share a consistent cache between
> connections. The one I'm worried about in particular here
> is qemu-nbd - Eric Blake CC'd.
>
I doubt that qemu-nbd would ever want to support the situation with more
than one client connection writing to the same image at the same time;
the implications of sorting out data consistency between multiple
writers is rather complex and not worth coding into qemu. So I think
qemu would probably prefer to just prohibit the multiple writer
situation. And while multiple readers with no writer should be fine,
I'm not even sure if multiple readers plus one writer can always be made
to appear sane (if there is no coordination between the different
connections, on an image where the writer changes AA to BA then flushes
then changes to BB, it is still feasible that a reader could see AB
(pre-flush state of the first sector, post-flush changes to the second
sector, even though the writer never flushed that particular content to
disk).
But Paolo Bonzini (cc'd) may have more insight on qemu's NBD server and
what it supports (or forbids) in the way of multiple clients to a single
server.
> A more general point is that with multiple queues requests
> may be processed in a different order even by those servers that
> currently process the requests in strict order, or in something
> similar to strict order. The server is permitted by the spec
> (save as mandated by NBD_CMD_FLUSH and NBD_CMD_FLAG_FUA) to
> process commands out of order anyway, but I suspect this has
> to date been little tested.
qemu-nbd is definitely capable of serving reads and writes out-of-order
to a single connection client; but that's different than the case with
multiple connections.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2016-09-15 13:34 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-08 21:12 Josef Bacik
2016-09-08 21:12 ` [PATCH 1/5] nbd: convert to blkmq Josef Bacik
2016-09-08 21:12 ` [PATCH 2/5] nbd: don't shutdown sock with irq's disabled Josef Bacik
2016-09-08 21:12 ` [PATCH 3/5] nbd: use flags instead of bool Josef Bacik
2016-09-09 1:20 ` Joe Perches
2016-09-09 13:55 ` Jens Axboe
2016-09-09 16:04 ` Joe Perches
2016-09-09 16:11 ` Jens Axboe
2016-09-09 16:15 ` Joe Perches
2016-09-09 16:20 ` Jens Axboe
2016-09-08 21:12 ` [PATCH 4/5] nbd: allow block mq to deal with timeouts Josef Bacik
2016-09-08 21:12 ` [PATCH 5/5] nbd: add multi-connection support Josef Bacik
2016-09-10 7:43 ` Christoph Hellwig
2016-09-12 13:11 ` Josef Bacik
2016-09-09 20:02 ` [Nbd] [RESEND][PATCH 0/5] nbd improvements Wouter Verhelst
2016-09-09 20:36 ` Josef Bacik
2016-09-09 20:55 ` Wouter Verhelst
2016-09-09 23:00 ` Josef Bacik
2016-09-09 23:37 ` Jens Axboe
2016-09-15 10:49 ` Wouter Verhelst
2016-09-15 11:09 ` Alex Bligh
2016-09-15 11:29 ` Wouter Verhelst
2016-09-15 11:40 ` Christoph Hellwig
2016-09-15 11:46 ` Alex Bligh
2016-09-15 11:52 ` Christoph Hellwig
2016-09-15 12:01 ` Wouter Verhelst
2016-09-15 12:20 ` Christoph Hellwig
2016-09-15 12:26 ` Wouter Verhelst
2016-09-15 12:27 ` Christoph Hellwig
2016-09-15 12:04 ` Alex Bligh
2016-09-15 11:39 ` Christoph Hellwig
2016-09-15 13:34 ` Eric Blake [this message]
2016-09-15 14:07 ` Paolo Bonzini
2016-09-15 15:23 ` Alex Bligh
2016-09-15 21:10 ` Paolo Bonzini
2016-09-15 15:25 ` Alex Bligh
2016-09-15 11:38 ` Christoph Hellwig
2016-09-15 11:43 ` Alex Bligh
2016-09-15 11:46 ` Christoph Hellwig
2016-09-15 11:56 ` Alex Bligh
2016-09-15 11:55 ` Wouter Verhelst
2016-09-15 12:01 ` Christoph Hellwig
2016-09-15 12:11 ` Alex Bligh
2016-09-15 12:18 ` Christoph Hellwig
2016-09-15 12:28 ` Alex Bligh
2016-09-15 12:21 ` Wouter Verhelst
2016-09-15 12:23 ` Christoph Hellwig
2016-09-15 12:33 ` Alex Bligh
2016-09-15 12:36 ` Christoph Hellwig
2016-09-15 12:39 ` Alex Bligh
2016-09-15 12:41 ` Christoph Hellwig
2016-09-15 12:44 ` Alex Bligh
2016-09-15 13:17 ` Wouter Verhelst
2016-09-15 13:57 ` Josef Bacik
2016-09-15 15:17 ` Alex Bligh
2016-09-15 16:08 ` Alex Bligh
2016-09-15 16:27 ` Wouter Verhelst
2016-09-15 16:42 ` Alex Bligh
2016-09-15 19:02 ` Eric Blake
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=8dd28f8b-0a3c-4112-ca6d-a9ad080d5920@redhat.com \
--to=eblake@redhat.com \
--cc=alex@alex.org.uk \
--cc=jbacik@fb.com \
--cc=kernel-team@fb.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mpa@pengutronix.de \
--cc=nbd-general@lists.sourceforge.net \
--cc=pbonzini@redhat.com \
--cc=w@uter.be \
/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
Powered by JetHome