Re: [Nbd] [RESEND][PATCH 0/5] nbd improvements
flat view
From: Alex Bligh <hidden>
Date: 2016-09-15 12:39:20
Also in:
lkml
On 15 Sep 2016, at 13:36, Christoph Hellwig [off-list ref] wrote: On Thu, Sep 15, 2016 at 01:33:20PM +0100, Alex Bligh wrote:quoted
At an implementation level that is going to be a little difficult for some NBD servers, e.g. ones that fork() a different process per connection. There is in general no IPC to speak of between server instances. Such servers would thus be unsafe with more than one connection if FLUSH is in use. I believe such servers include the reference server where there is process per connection (albeit possibly with several threads). Even single process servers (including mine - gonbdserver) would require logic to pair up multiple connections to the same device.Why? If you only send the completion after your I/O syscall returned your are fine if fsync comes from a difference process, no matter if you're using direct or buffered I/O underneath.
That's probably right in the case of file-based back ends that are running on a Linux OS. But gonbdserver for instance supports (e.g.) Ceph based backends, where each connection might be talking to a completely separate ceph node, and there may be no cache consistency between connections. -- Alex Bligh