Coda File System

Re: Per volume directory limit of 2046?

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Fri, 14 Jul 2000 15:40:16 -0400
On Tue, Jul 11, 2000 at 03:36:55PM +0200, ulrich.hahn wrote:
> 
> Since my last post a week ago I confirmed the limit of 2046 directories
> per volume. Before I go to check the source IŽd like to know if this is
> a coda feature or just a flaw. Most of the time this limit will go
> unnoticed, but I think the number of directories per volume needs no
> limit.
> 
> What do you think about this?

Bug confirmed and found.

It is actually an administrative quota on the number of resolution log
entries which is the cause for this limit.

For server-server resolution purposes, every operations are logged in
the resolution log. When a successful COP2 or Resolve message is
received, these committed operations are removed from these logs.

Every directory has it's own little log, and in order to find a common
point during resolution, there is always at least 1 log entry per
directory. And here is where the quota kicks in. There is a default
administrative quota of 2048 resolution log entries per volume, so after
2047 directories (+ volume root) the server refuses to allocate
additional log entries. 

The short term fix for this is,

- On singly replicated volumes, turn off the logging of operations for
  resolution,

    volutil setlogparms <volumeid> reson 0

- On volumes with multiple replicas it is extremely dangerous to turn
  off operation logging, but the administrative limit can be extended,

    volutil setlogparms <volumeid> reson 4 setlogsize 16384

The long term fix we hope to have in an upcoming release will
automatically disable resolution logging for singly replicated volumes,
and allow for an `unlimited' quota limit as the default resolution
logsize. Controlling block/file/reslog quotas using "cfs setquota/getquota"
would be nice.

Jan
Received on 2000-07-14 15:44:42