Re: [PATCH 1/1] NFSv4.1 Increase NFS4_DEF_SLOT_TABLE_SIZE

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

 



On Mon, 2013-07-22 at 19:52 +0000, Adamson, Andy wrote:
> On Jul 22, 2013, at 3:17 PM, "Myklebust, Trond" <Trond.Myklebust@xxxxxxxxxx>
>  wrote:
> > The problem is that once you implement dynamic slot tables, the
> > negotiated session slot table size becomes the _minimum_ number of
> > slots.
> 
> Could you explain this a bit more? I'd like to understand your reasoning.  I can see that the dynamic session goal is to end up with the highest_slotid value to be just high enough to meet the actual load, but not waste server slot resources. But I don't understand why the client value of ca_maxrequests makes a difference in the dynamic sessions case because whether the client starts high or low, the server will adjust the value to one that fits the load.

If all clients supported dynamic slot tables, then there would be no
problems with the server lowering the number of slots beyond the value
negotiated at session creation time.
The problems occur if there are clients out there that don't support
dynamic slots, and that fail to inspect the sr_target_highest_slotid and
sr_highest_slotid for changes (the Linux client used to behave this
way). If the server then lowers sr_highest_slotid to be less than the
initial value, then the client won't realise it has fewer slots, and
will end up receiving NFS4ERR_BADSLOT errors that it doesn't know how to
handle.

IOW: the only safe behaviour for a server in that case is to treat the
initial value as the minimum value for sr_highest_slotid and
sr_target_highest_slotid.

-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@xxxxxxxxxx
www.netapp.com
��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux