(Illustration by Gaich Muramatsu)
> > > EDQUOT, quota exceeded. Interesting, both replicas are not in sync, some > > > files probably exist on one, other files on the other replica. Both > > > replicas are probably under quota, but we can't synchronize them because > > > the union of the two would exceed our current quota. > > > > So, what would be the right thing to do in this case? I would think the > > client should have a few more checks and block new file writes when it > > thinks you are going to get over quota (maybe even blocking at 95% > > quota, or something configurable). > > The client can't know how much quota is left on the servers. I can have > a client with a 100MB cache, but there could be several GBs of quota > available. And then some of the servers might be (temporarily) > unreachable. Can we keep quota information in the local venus volume information? > The only 'right' thing that I can think of is to not enforce the quota > check during resolution. So a user with a doubly replicated volume could > end up using up to twice the quota amount, but that only happens when he > first completely fills up one replica, and then fills up the other while > never seeing both servers at any given time (a triply replicated volume > would max out at three times quota). This seems bad.. I would rather consider over quota on resolution a conflict, and make the user deal with it. And if venus has a (non-authoritative) copy of the current quota useage, we can return ENOSPC when venus thinks we've hit 95% quota, (or allow 10% overage like afs does). > > I would also make the same argument for filling up a directory.. venus > > should block file writes instead of dieing ;) > > I've been trying for a while to make it return a normal ENOSPC error > code, but the error is clearly not propagated back all the way to > userspace. Hrrm, where would I start looking at this? Is it a generic coda problem, or something specific to the particular kernel? (linux/bsd/etc) > > Also, is there a way to get 'cfs lv' to tell me what a specific server > > thinks for disk/quota usage? How does it decide which server to look at? > > That is kind of random. I believe it actually asks all servers, but only > displays the data of the server that responded first or something. I'd call this a bug.. you can never know for sure if you're running out fo space or not then. There ought to be a way to ask a specific server for 'cfs lv' info.Received on 2004-08-04 11:49:29