On Fri, Jan 14, 2005 at 01:20:23 -0800, prasanna wakhare wrote: > Hi Jan, > Thanks for excellent reply.It refresh my concepts. > I knew these generic_* functions . > Rather i implemented readpage ,prepare write and > commit write for network file system, > The main confusion i got when locking comes into > picture, > We cant rely on thoses pages on the current machines > which are not under lock,as it bacause some other > clients might modify those pages.And this all stuff You have to put consistency checks in the right places and use invalidate_inode_pages (or make a variant of it that accepts a range and use that). > makes me think of our own explicit caching atleast in > large cluster filesystems. Network filesystem can't, principialy, achieve absolute consistency (because it's not well defined). So you have to define what rules of consistency you have. And it turns out, that trying to define strict rules won't win you anything. You can check here and there and finaly find, that you can't guarantee much anyway. Been there, done that. So I suggest you define consistency in terms of open, close and POSIX locks. Than these calls will have to do the appropriate consistency checks and perhaps invalidate the pages. Between, just let the cache do the best it can. Trying to get stronger consistency (and actualy guarantee it) is bound to kill performance completely. Basicaly applications that do concurent access have to do locking even on local filesystems. The only thing beyond locks that must be guaranteed is, that if node 1 opens A and closes it and then opens B and closes it, than node 2 can't see unmodified A and modified B at the same time. > Akthough i dont know how worst or good it is. > Or if somebody knows about lustre cachind then i > really pleased to listen the comments on lustres. I don't really know, but I believe lustre really has relatively relaxed consistency guarantees. ------------------------------------------------------------------------------- Jan 'Bulb' Hudec <bulb@xxxxxx>
Attachment:
signature.asc
Description: Digital signature