[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Nbd] Question about the expected behaviour of nbd-server for async ops



Alex Bligh <alex@...872...> writes:

> --On 30 May 2011 14:08:25 +0200 Goswin von Brederlow
> <goswin-v-b@...186...> wrote:
>
>> I disagree. Delaying ACKs is not the way to slow down the client when
>> the server has too much cached data for the moment. It should just pause
>> reading in more requests till it has buffer space again.
>
> That depends on the server example. Go back to my JBOD example where
> the incoming queue is split between threads handling different disks.
> If Disk 1 is write-heavy and backing up, there is no reasons to stop
> handling reads for Disk 2. As requests have to be read in order,
> if you want to handle any requests for disk 2 when disk 1 is backed
> up, you have to queue them.
>
> -- 
> Alex Bligh

But that means reading in requests from the socket. And those might just
as well be more writes to disk 1 as reads from disk 2. And reading the
request needs the memory to store writes that you don't have.

If you have per disk requests queues and one of them hits the limit then
you can keep reading in new requests up until you hit another one for the
saturated disk. At that point you have to pause until the queue clears
up some. But that has nothing to do with sending ACKs. Not sending ACKs
in no way garanties the client won't send more requests for a specific
disk.

MfG
        Goswin



Reply to: