Wouter Verhelst <[email protected]> writes:
> On Fri, May 06, 2011 at 11:10:29AM +0200, Folkert van Heusden wrote:
>> Hi,
>>
>> I have a suggestion for performance enhancement of NBD.
>> The idea is that between each request the client and server exchange a
>> message. Since networks are slow, this takes a while.
>
> The current implementation works that way, because nbd-server is not
> doing asynchronous reads, and therefore can only handle one request at a
> time. But the protocol doesn't require it, and changing the
> implementation so that it can handle one request while preparing to
> handle another is what I meant with the performance improvements that I
> mailed about earlier.
Does the kernel already pipeline requests?
>> Maybe we can, at least for write requests, send a couple of write
>> commands with their data without immediately waiting for the reply and
>> then if, say, 32 of them are send, wait for the acknowledgments. If I
>> remember correctly that's also how iSCSI does it.
>
> There's no reason to limit them to write requests only. However read and
> write requests do need to remain somewhat ordered, otherwise there are
> going to be some issues.
Two cases: read after write and write after read.
While I see that some bad implementation could read a block that is
still writing I wonder if that could ever happen with linux? Wouldn't
the data remain in cache as long as the NBD server hasn't acked the
write?
I guess one always has to protect read requests from later comming write
requests.
MfG
Goswin
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Nbd-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nbd-general